「wordvbaでexcelのセルデータを取得する」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。
Word VBA(Visual Basic for Applications)を使って、いずれかのExcel上に存在するセルからデータを取得するには、どのようなコードを書けばいいのか探していた方による検索です。
他のブックを開いてデータを取得するサンプルマクロ
まずは、他のブックを開いて、セルデータを取得するExcelマクロを確認しましょう。
C:\TEMPフォルダーに、SAMP.xlsxファイルを用意しておいてから、以下のExcelマクロを実行すると、C:\TEMP\SAMP.xlsxが開かれ、1枚目のワークシートのA1セルの値がメッセージボックスに表示され、SAMP.xlsxブックが閉じられます。
With Workbooks.Open("C:\TEMP\SAMP.xlsx")
MsgBox .Worksheets(1).Range("A1").Value
.Close SaveChanges:=False
End With
End Sub
Excelの、WorkbooksコレクションオブジェクトのOpenメソッドで、
引数に指定した「C:\TEMP\SAMP.xlsx」ブックを開いて、1枚目のワークシートのA1セルの値を取得して、メッセージボックスに表示して、
MsgBox .Worksheets(1).Range("A1").Value
「C:\TEMP\SAMP.xlsx」ブックを保存せずに閉じています。
.Close SaveChanges:=False
「wordvbaでexcelのセルデータを取得する」ためには、このプロシージャで行っている処理が含まれますから、自分でExcelのセルデータを取得するWordマクロを作りたいという場合は、Excel VBAの処理を完全に理解しておく必要があります。
Excelデータを取得するWordマクロ
で、同じことをWord VBAで行うには以下のようなSubプロシージャです。
With CreateObject("Excel.Application")
.Visible = True
With .Workbooks.Open("C:\TEMP\SAMP.xlsx")
MsgBox .WorkSheets(1).Range("A1").Value
.Close SaveChanges:=False
End With
.Quit
End With
End Sub
Word VBAでExcelを操作するので、VBAのCreateObject関数で、
Excelのインスタンスを作成して、
With CreateObject("Excel.Application")
Excelを表示しておいてから、
.Visible = True
先ほどのExcelマクロと同じ処理を行っています。
行っている処理は同じですが、Word VBAから操作しているので、オブジェクト式としては、
With .Workbooks.Open("C:\TEMP\SAMP.xlsx")
と、Workbooksコレクションオブジェクトを取得するためのWorkbooksプロパティの前に「.」がついている箇所が異なります。
- Newer:Excel VBAでブックを読み取り専用に
- Older:画像を最前面へ移動するExcelマクロ-ZOrderメソッド
Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelのセルデータを取得する