操作対象のSheetを切り替える処理です。
WorkSheetオブジェクトにWorkSheets(n)を上書きしてしまえば済みそうな話ですが、
それをやってしまうとCOMオブジェクトの解放ができずに
タスクマネージャにプロセスが残ることがあります。
面倒ですが、シート切り替えはWorkSheetオブジェクトを一度解放、
その後、空になったWorkSheet用の変数に再度登録してあげる必要があります。
' Excelアプリケーション Dim xlApp As Application = Nothing xlApp = New Application ' ワークブック Dim xlBooks As Workbooks = Nothing Dim xlBook As Workbook = Nothing ' シート Dim xlSheets As Sheets = Nothing Dim xlSheet as WorkSheet = nothing xlApp = New Application xlBooks = xlApp.Workbooks xlBook = xlBooks.Open('対象ファイルまでの完全パス') xlSheets = xlBook.Worksheets xlSheet = DirectCast(xlSheets(1), Worksheet) ' 1シート目を操作対象に設定 ' ↓↓操作対象シートを2シート目に切り替える↓↓ ' シート1のオブジェクトを解放する System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet) ' 解放後に切り替え後のシートを設定してあげる xlSheet = DirectCast(xlSheets(2), Worksheet)