Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelのセルデータを取得する

Word VBAでExcelのセルデータを取得する

「wordvbaでexcelのセルデータを取得する」
という検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスがありました。

Word VBA(Visual Basic for Applications)を使って、いずれかのExcel上に存在するセルからデータを取得するには、どのようなコードを書けばいいのか探していた方による検索です。

[スポンサードリンク]

他のブックを開いてデータを取得するサンプルマクロ

まずは、他のブックを開いて、セルデータを取得するExcelマクロを確認しましょう。

C:\TEMPフォルダーに、SAMP.xlsxファイルを用意しておいてから、以下のExcelマクロを実行すると、C:\TEMP\SAMP.xlsxが開かれ、1枚目のワークシートのA1セルの値がメッセージボックスに表示され、SAMP.xlsxブックが閉じられます。

Sub 他のブックを開いてセルデータを取得する()
 With Workbooks.Open("C:\TEMP\SAMP.xlsx")
  MsgBox .Worksheets(1).Range("A1").Value
  .Close SaveChanges:=False
 End With
End Sub

Excelの、WorkbooksコレクションオブジェクトのOpenメソッドで、

Word VBAでExcelのセルデータを取得する

引数に指定した「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プロシージャです。

Sub Excelブックを開いてセルデータを取得する()
 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関数で、

Word VBAでExcelのセルデータを取得する

Excelのインスタンスを作成して、
 With CreateObject("Excel.Application")

Excelを表示しておいてから、
  .Visible = True

先ほどのExcelマクロと同じ処理を行っています。

行っている処理は同じですが、Word VBAから操作しているので、オブジェクト式としては、
  With .Workbooks.Open("C:\TEMP\SAMP.xlsx")
と、Workbooksコレクションオブジェクトを取得するためのWorkbooksプロパティの前に「.」がついている箇所が異なります。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » Office連携 » Word VBAでExcelのセルデータを取得する

「Office連携」の記事一覧

検索


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

.