Home » Access VBA » Access VBAでExcelの1枚目のシートを取得する

Access VBAでExcelの1枚目のシートを取得する

動作検証バージョン:Windows 11 Home + 64bit Access & Excel バージョン 2407(ビルド17809.20000クイック実行)ベータチャネル

「access vba excel 1シート目を参照する」
といった検索キーワードでアクセスがありました。

Access VBAで、Excelの1枚目のシートへの参照を取得するには、どのようなコードを書けばいいのかを調べていらしたのでしょう。

[スポンサードリンク]

Excelの1枚目のシートを取得するサンプルプロシージャ

Excelブックが1つだけ起動している状態で以下のSubプロシージャを実行してください。

Sub Excelの1枚目のシートを取得する()
On Error GoTo ErrHandl
 
 With GetObject(Class:="Excel.Application")
  
  Dim xl_sht1 As Object
  Set xl_sht1 = .Sheets.Item(1)
  Stop
 
 End With

Exit Sub
ErrHandl:
 Select Case Err.Number
  Case 429
   MsgBox "Excelが起動していないようです。"
  Case 91
   MsgBox "Excelファイルが開かれていないようです。"
  Case Else
   MsgBox Err.Description & vbCrLf & Err.Number
 End Select
 Err.Clear
End Sub

Stopステートメントで中断して、起動しているExcelブックの1枚目のシートを表すオブジェクト(通常Worksheetオブジェクト)が変数xl_sht1に代入されている様子を、下図のようにローカルウィンドウで確認できます。

サンプルプロシージャで行っている処理

上記のSubプロシージャでは、VBAのGetObject関数の引数Classに文字列「Excel.Application」を指定することで、起動しているExcel.Applicationへの参照をまず取得しています。

 With GetObject(Class:="Excel.Application")

Excel.Applicationへの参照を取得した後は、実質的にExcel VBAのコードです。
本当のExcel VBAであれば、以下のコードでアクティブなブックの1枚目のシートを取得できますが、

Dim xl_sht1 As Object
Set xl_sht1 = Sheets.Item(1)

Access VBAのWithステートメント内ですから「Sheet」の直前の「.」が必要です。

Dim xl_sht1 As Object
Set xl_sht1 = .Sheets.Item(1)

「.Item」を省略した以下のコードでもOKです。

Dim xl_sht1 As Object
Set xl_sht1 = .Sheets(1)

[スポンサードリンク]

Home » Access VBA » Access VBAでExcelの1枚目のシートを取得する

「Access VBA」の記事一覧

検索


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

.