「word vba excel 最後のページ」
という検索でアクセスがありました。
Word VBAで、Excelの最後のシートを操作したいということでしょうか。
また、
「word vba excelの指定シートを開く」
という検索でもアクセスがあります。
こちらは、Excelの特定のシートをWord VBAでアクティブにしたいということでしょうか。
Excelの最後のシートをアクティブにするサンプルマクロ
Excelファイルが開かれている状態で、以下のWordマクロを実行すると、Excelの最後のシートがアクティブになります。
On Error GoTo ErrHandl
With GetObject(Class:="Excel.Application")
With .Sheets
.Item(.Count).Activate
End With
End With
ErrHandl:
Select Case Err.Number
Case 9
MsgBox "指定されたシートは存在しないようです。"
Case 429
MsgBox "Excelが起動していないようです。"
Case 4248
MsgBox "Excelファイルが開かれていないようです。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
上記のSubプロシージャにはWord VBAと呼べるコードは実際には入っていませんから、PowerPoint VBAからでもAccess VBAからでも実行可能です。
上記Subプロシージャの
With GetObject(Class:="Excel.Application") With .Sheets .Item(.Count).Activate End With End With
の部分を、以下のようにした場合には、
With GetObject(Class:="Excel.Application") .Sheets(1).Activate End With
先頭シートがアクティブになります。
「Sheet1」という名前のシートが存在していれば、
With GetObject(Class:="Excel.Application") .Sheets("Sheet1").Activate End With
で、Sheet1シートがアクティブになります。
GetObject後は実質的にExcel VBA
VBAのGetObject関数を使って起動済みのExcelへの参照を取得したあとは、
With GetObject(Class:="Excel.Application")
実質的にExcel VBAのコードです。
Excel.Application.Sheetsプロパティで起動済みExcelのSheetsコレクションを取得して、
With .Sheets .Item(.Count).Activate
Excel.Sheets.Itemプロパティの引数に、
With .Sheets .Item(.Count).Activate
Excel.Sheets.Countプロパティで取得したシート枚数を指定することで、最後のシートへの参照を取得して、
With .Sheets .Item(.Count).Activate
Excel.Worksheet.Activateメソッドでアクティブにしています。
With .Sheets .Item(.Count).Activate
Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelの最後のシートをアクティブに