【VB.NET】Excel操作で既存シートを任意の位置に移動する

スポンサーリンク

どうも、あおです。

 

 

VB.NETでExcel操作する際、

既存シートを任意の位置に移動する方法。

 

 

今回は以下のように「def」シートを「paste」シートの右に移動したい。

 

 

 

以下サンプルソース。

 

Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        'Excelオブジェクトを生成
        Dim xlApp As New Excel.Application()

        '指定したExcelファイルを開く
        Dim xlBk As Excel.Workbook = xlApp.Workbooks.Open("C:\Users\user\Desktop\test.xls")

        '移動対象のシート
        Dim xldefSh As Excel.Worksheet = xlBk.Worksheets("def")

        Try
            'シート移動
            xldefSh.Move(After:=xlBk.Worksheets("paste"))

            'Excelを表示する
            xlApp.Visible = True

            '移動したシートをアクティブにする
            xldefSh.Activate()

            '処理終了のメッセージダイアログ表示
            MessageBox.Show("処理終了しました",
            "確認",
            MessageBoxButtons.OK,
            MessageBoxIcon.Information,
            MessageBoxDefaultButton.Button1,
            MessageBoxOptions.DefaultDesktopOnly)

        Catch ex As Exception

            MsgBox(ex.Message)

        Finally

            'Excelの各プロセス解放

            If Not xldefSh Is Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xldefSh)
                xldefSh = Nothing
            End If

            If Not xlBk Is Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlBk)
                xlBk = Nothing
            End If

            If Not xlApp Is Nothing Then
                xlApp.Quit()
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xlApp)
                xlApp = Nothing
            End If

            GC.Collect()

        End Try
    End Sub
End Class

 

 

 

簡単に説明すると、

先にForm1というフォームをつくって、

ボタンを配置します。(今回の名前は「Button1」)

 

そして以下の流れ。

 

1)対象のExcelファイルの場所+ファイル名をセット

2)移動対象のシート名セット

3)シート移動(今回は「paste」シートの右に移動したいので

そのように指定。)

4)対象のExcelを表示して、移動したシートをアクティブにする

5)処理が終わった合図として、メッセージダイアログを表示

6)Excelの各プロセス解放

 

 

 

移動しました。

 

 

 

 

 

おわり

PC
スポンサーリンク