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

スポンサーリンク

どうも、あおです。

 

 

VB.NETでExcel操作する際、

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

 

 

 

今回は以下のように

「paste」シートを「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")

        'コピー元シート ※一番左のシートをコピーしたい場合は、下のように「Item(1)」でも指定可能
        'Dim xltarSh As Excel.Worksheet = CType(xlBk.Worksheets.Item(1), Excel.Worksheet)
        Dim xltarSh As Excel.Worksheet = CType(xlBk.Worksheets("paste"), Excel.Worksheet)

        Try
            'シートコピー
            xltarSh.Copy(After:=xlBk.Worksheets("paste"))

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

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

        Catch ex As Exception

            MsgBox(ex.Message)

        Finally

            'Excelの各プロセス解放

            If Not xltarSh Is Nothing Then
                System.Runtime.InteropServices.Marshal.ReleaseComObject(xltarSh)
                xltarSh = 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
スポンサーリンク