Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelの最後のシートをアクティブに

Word VBAでExcelの最後のシートをアクティブに

動作検証バージョン:64bit Windows 10 Pro + 32bit Word & Excel(バージョン2203 ビルド15028.20228 Microsoft Store)

「word vba excel 最後のページ」
という検索でアクセスがありました。
Word VBAで、Excelの最後のシートを操作したいということでしょうか。

また、
「word vba excelの指定シートを開く」
という検索でもアクセスがあります。
こちらは、Excelの特定のシートをWord VBAでアクティブにしたいということでしょうか。

[スポンサードリンク]

Excelの最後のシートをアクティブにするサンプルマクロ

Excelファイルが開かれている状態で、以下のWordマクロを実行すると、Excelの最後のシートがアクティブになります。

Sub Exceの最後のシートをアクティブにする()
On Error GoTo ErrHandl

 With GetObject(Class:="Excel.Application")
  With .Sheets
   .Item(.Count).Activate
  End With
 End With

Exit Sub
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の最後のシートをアクティブに

「Office連携」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.