この記事では、Wordのファイル内に表がいくつかあるか特定する方法についてご説明します。
【動画】Excelのシートの表をそのままWordに出力して保存する実際の動き
本題に入る前に、まずは次の動画をご覧ください。
ExcelのマクロがWordのファイルを開き、Excelの表の値を出力したい(Wordの)表を検索して表の数を取得します。
マクロ作成の流れ
Wordファイルの例
今回は次のWordファイルを用意しました。
Wordファイルの中に6つの表があります。
マクロを実行すると、Wordのファイル内に表がいくつかあるか、その件数を表示します。
Wordファイルに表が6つあるので、6の値が出力されています。
コードの例
Option Explicit Private Sub btn_exec_Click() Dim ws As Worksheet 'ワークシート変数 Dim WordApp As Object 'Wordアプリケーションインスタンス用変数 Dim WordDoc As Object 'Wordファイル用変数 'Wordの表から検索する文字列を取得する Const wdFndStr As String = "項番" 'Wordにデータを出力するシートを取得する Set ws = Worksheets("top") 'Wordアプリケーション用インスタンスを生成する Set WordApp = CreateObject("Word.Application") 'Wordを表示しない WordApp.Visible = False 'Wordファイルを開く Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\0291.docx") 'Wordファイル内の表の数を表示する MsgBox WordDoc.Tables.Count & "件" 'Wordのファイルを閉じる WordDoc.Close 'Wordを終了する WordApp.Quit '後処理 Set WordDoc = Nothing Set WordApp = Nothing End Sub
注目すべきコード①
最初に見て頂きたいのは16行目です。
'Wordアプリケーション用インスタンスを生成する Set WordApp = CreateObject("Word.Application")
コードの説明
以上のコードは、Wordアプリケーション用インスタンスを生成するコードです。
このインスタンスを生成することでWordが起動されて操作することができるようになります。
今回はWordファイルを開いたりWord自体を終了させるなどの操作を行うのに使います。
注目すべきコード②
次に見て頂きたいのは19行目です。
'Wordを表示しない WordApp.Visible = False
コードの説明
以上のコードは、Wordの画面を非表示にするコードです。
Trueの場合はWordが表示されたままの状態になります。
注目すべきコード③
次に見て頂きたいのは22行目です。
'Wordファイルを開く Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\0291.docx")
コードの説明
以上のコードは、Wordファイルを開く処理のコードです。
OpenメソッドにExcelのシートの表を出力したいWordファイルのフルパスを指定して実行することで、そのWordファイルが開きます。
注目すべきコード④
次に見て頂きたいのは25行目です。
'Wordファイル内の表の数を表示する MsgBox WordDoc.Tables.Count & "件"
コードの説明
以上のコードは、Wordファイル内の表の数を表示する処理のコードです。
WordDoc.Tables.CountプロパティはWord文書内の表の数を返すので、その値をメッセージボックスで表示させています。
注目すべきコード⑤
次に見て頂きたいのは28行目から31行目です。
'Wordのファイルを閉じる WordDoc.Close 'Wordを終了する WordApp.Quit
以上のコードは、Wordのファイルを閉じ、Word自体も閉じる(終了する)処理のコードです。
コードの詳細
28行目のコードは、Wordのファイルを閉じるコードです。
31行目のコードは、Wordを終了する(閉じる)コードです。
動作確認
「Wordファイルの例」をご覧ください。
最後に
この記事では、Wordのファイル内に表がいくつかあるか特定する方法についてご説明しました。
Wordのファイル内に表がいくつかあるか知りたい場合は本記事を参考にして頂けたら幸いです。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。