Wordを操作する準備
VBAは、Excelだけではなく、WordやAccess、PowerPoint、Outlookといった主要なOfficeアプリケーションにも搭載されています。
VBAが参照する「ライブラリファイル」がOfficeアプリケーションごとに用意されているので「ライブラリファイル」との参照設定を行うことでExcel VBAから、ほかのOfficeアプリケーションを操作することができます。
Excel VBAでWordを操作するには、Word VBAの「ライブラリファイル」への参照設定を行います。
Word VBAの「ライブラリファイル」にはバージョンがあり、操作するWordのバージョンに対応した「ライブラリファイル」を選択します。
参照設定は、Wordを操作するブックごとに設定する必要があります。
バージョン | 対応するライブラリーファイル |
---|---|
Word 2016 | Microsoft Word 16.0 Object Library |
Word 2013 | Microsoft Word 15.0 Object Library |
Word 2010 | Microsoft Word 14.0 Object Library |
Word 2017 | Microsoft Word 12.0 Object Library |
Word VBAの「ライブラリファイル」参照設定の手順
Wordの主なオブジェクトと階層構造
Word VBAでは、Wordを構成する「文書」や「段落」などの要素を、オブジェクトとしてあつかいます。これらのオブジェクトには、下図のような階層構造があり各オブジェクトを参照するには、この階層構造を上から順にたどって参照します。
Wordを操作する手順
1. Dim【デム】ステートメントでNew【ニュー】キーワードを使用して「Wordオブジェクト」のインスタンス(複製)を生成します。
2. 「Word文書」を表すDocument【ドキュメント】型のオブジェクト変数を宣言します。
3. Application【アプリケーション】オブジェクトのDocuments【ドキュメンツ】プロパティでWord文書をDocument【ドキュメント】オブジェクトとして参照しWord文書内の各要素をDocumentオブジェクトから階層をたどって参照し、各要素を操作します。
Wordを表すApplicationオブジェクトのインスタンスを作成する書式
Dim オブジェクト変数 As New Word.Application
Word文書を表すDocument型のオブジェクト変数の宣言の書式
Dim オブジェクト型変数名 As Word.Document
Word文書を参照するする主なプロパティ
プロパティ | 内容 |
---|---|
Documents 【ドキュメンツ】 | 開いているWord文書を参照します。 |
Paragraphs 【パラグラフス】 | Word文書内の段落を参照します。 |
Range 【レンジ】 | 段落内の特定の部分を参照します。 |
Word文書を操作する主なメソッド
メソッド | 内容 |
---|---|
Documents.Add 【ドキュメンツアド】 | 新規のWord文書を開きます。 |
Documents.Open 【ドキュメンツオープン】 | 既存のWord文書を開きます。 |
InsertBefore 【インサートビフォア】 | 段落の先頭位置に文字列を挿入します。 |
InsertAfter 【インサートアフター】 | 段落の終了位置に文字列を挿入します。 |
SaveAs2 【セーブアズツー】 | Word文書を名前を付けて保存します。 |
Save 【セーブ】 | Word文書を上書き保存します。 |
Close 【クローズ】 | Word文書を閉じます。 |
Quit 【クエイト】 | Wordを終了します。 |
Documents【ドキュメンツ】プロパティ
開かれたすべてのWord文書を参照するには、Application【アプリケーション】オブジェクトのDocuments【ドキュメンツ】プロパティを使用します。値の取得のみ可能です。
Documents【ドキュメンツ】プロパティの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Documents([Index])
- オブジェクト(必須)
Wordを表す、Application【アプリケーション】オブジェクトのインスタンス(複製)が格納されている「オブジェクト変数」を指定します。 - Index【インデックス】(省略可)
参照するWord文書名を拡張子を付けて文字列で指定、またはインデックス番号(開いた順番)で指定します。省略した場合は開かれているすべてのWord文書を参照します。
Paragraphs【パラグラフス】プロパティ
Word文書内の段落を参照するには、Document【ドキュメント】オブジェクトのParagraphs【パラグラフス】プロパティを使用します。
Paragraphs【パラグラフス】プロパティの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Paragraphs([Index])
- オブジェクト(必須)
Word文書を表す、Word.Docment型のオブジェクト変数を指定します。 - Index【インデックス】(省略可)
参照する段落を整数値で指定します。省略した場合は指定したWord文書のすべての段落が参照されます。
Range【レンジ】プロパティ
Word文書の段落内の特定部分を参照するには、Paragraph【パラグラフ】オブジェクトの
Range【レンジ】プロパティを使用します。
Range【レンジ】プロパティの書式と設定値の説明
オブジェクト.Range
- オブジェクト(必須)
Paragraphs【パラグラフス】プロパティに引数Indexを指定した特定の段落を表す、Paragraph【パラグラフ】オブジェクトを指定します。
Documents.Add【ドキュメンツアド】メソッド
新規のWord文書を開くには、Document【ドキュメント】オブジェクトのAdd【アド】メソッドを使用します。
Documents.Add【ドキュメントアド】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Documents.Add([Template, NewTemplate, DocumentType, Visible])
- オブジェクト(必須)
Wordを表す、Application【アプリケーション】オブジェクトのインスタンス(複製)が格納されている「オブジェクト変数」を指定します。 - Template【テンプレート】(省略可)
Word文書の名前をパス(場所)を含めて文字列で指定します。省略した場合はカレントフォルダーに標準の名前が指定されます。 - NewTemplate【ニューテンプレート】(省略可)
Trueを指定するとWord文書はテンプレートとして開きます。省略した場合はFalseが指定され標準で開きます。 - DocumentType【ドキュメントタイプ】(省略可)
作成する文書の種類をWdNewDocumentType 列挙型の定数で指定します。省略した場合は既定値の「空白の文書」が指定されます。WdNewDocumentType 列挙型の定数 定数 値 内容 wdNewBlankDocument 0 空白の文書(既定値) wdNewWebPage 1 Web ページ wdNewEmailMessage 2 電子メール メッセージ wdNewFrameset 3 フレームセット wdNewXMLDocument 4 XML ドキュメント - Visible【ビジブル】(省略可)
Falseを指定した場合、新しいWordは開きますが非表示になります。省略した場合はTrueが指定され表示されます。
Documents.Open【ドキュメンツオープン】メソッド
既存のWord文書を開くには、Document【ドキュメント】オブジェクトのOpen【オープン】メソッドを使用します。
Documents.Open【ドキュメンツオープン】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Documents.Open(FileName, [ConfirmConversions, ReadOnly,
AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert,
WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible,
OpenConflictDocument, OpenAndRepair, DocumentDirection, NoEncodingDialog])
- オブジェクト(必須)
Wordを表す、Application【アプリケーション】オブジェクトのインスタンス(複製)が格納されている「オブジェクト変数」を指定します。 - FileName【ファイルネーム】(必須)
開くWord文書の名前をパス(場所)を含めて文字列で指定します。 - ConfirmConversions【コンフロムコンバーション】(省略可)
True を設定すると、ファイルが Microsoft Word 形式ではない場合に[ファイルの変換] ダイアログ ボックスを表示します。 - ReadOnly【リードオンリー】(省略可)
True を設定すると、文書が読み取り専用で開かれます。この引数によって、保存されている文書の読み取り専用の設定が変更されることはありません。たとえば、読み取り専用の設定をオンにして文書が保存されている場合に引数 ReadOnly を False に設定してもそのファイルが読み込み/書き込みとして開かれることはありません。 - AddToRecentFiles【アドトゥリセントファイル】(省略可)
True を設定すると、最近使用したファイルの一覧にファイル名を追加します - PasswordDocument【パスワードドキュメント】(省略可)
文書を開くためのパスワードを指定します。 - PasswordTemplate【パスワードテンプレート】(省略可)
テンプレートを開くためのパスワードを指定します。 - Revert【リバート】(省略可)
FileName が開いている文書のファイル名の場合の処理を制御します。True を設定すると、保存されていない文書への変更を破棄してファイルを再度開きます。False を設定すると、開いている文書をアクティブにします。 - WritePasswordDocument【ライツパスワードドキュメント】(省略可)
文書への変更を保存するためのパスワードを指定します。 - WritePasswordTemplate【ライツパスワードテンプレート】(省略可)
テンプレートへの変更を保存するためのパスワードを指定します。 - Format【フォーマット】(省略可)
文書を開くために使用するファイル コンバーターを指定します。WdOpenFormat 列挙型の定数で指定します。WdOpenFormat 列挙型の定数 定数 値 内容 wdOpenFormatAuto 0 既存の形式(既定値) wdOpenFormatDocument 1 Word形式 wdOpenFormatTemplate 2 Word テンプレートとして開く wdOpenFormatRTF 3 リッチテキスト形式 wdOpenFormatText 4 エンコードされていないテキスト形式 wdOpenFormatEncodedText 5 エンコードされたテキスト形式 wdOpenFormatAllWord 6 以前のバージョンと互換性のある Word 形式 wdOpenFormatWebPages 7 HTML 形式 wdOpenFormatXML 8 XML 形式 - Encoding【エンコーディング】(省略可)
保存された文書を表示するときに使用する、文書のエンコードを指定します。MsoEncoding クラスの定数で指定します。有効な MsoEncoding クラスの定数の一覧についてはVisual Basic Editor のオブジェクト ブラウザーを参照してください。既定値はシステム コード ページです。 - Visible【ビジブル】(省略可)
開いたWord文書を表示しない場合はFalseを指定します。省略した場合はTrueが指定され表示されます。 - OpenConflictDocument【オープンコンフリクトドキュメント】(省略可)
オフラインで競合している文書の競合ファイルを開くかどうかを指定します。 - OpenAndRepair【オープンアンドリペア】(省略可)
True を設定すると、文書の破損を防止するために文書が修復されます。 - DocumentDirection【ドキュメントディレクション】(省略可)
文書内での文字列の水平方向の向きを指定します。WdDocumentDirection 列挙型の定数を指定します。WdDocumentDirection 列挙型の定数 定数 内容 wdLeftToRight 左から右へ(既定値) wdRightToLeft 右から左へ - NoEncodingDialog【ノーエンコーディングダイアログ】(省略可)
True を設定すると、エンコード方法が認識されない場合にはエンコード方法を指定するダイアログ ボックスが表示されません。省略した場合は False が指定され表示されます。
InsertBefore【インサートビフォア】メソッド
Word文書内の指定された段落の先頭位置に文字列を挿入するには、Range【レンジ】オブジェクトのInsertBefore【インサートビフォア】メソッドを使用します。
InsertBefore【インサートビフォア】メソッドの書式と設定値(引数)の説明
オブジェクト.InsertBefore( Text )
- オブジェクト(必須)
Word文書の段落内の特定の部分を表すRange【レンジ】オブジェクトを指定します。 - Text【テキスト】(必須)
挿入する文字列を指定します。
InsertAfter【インサートアフター】メソッド
Word文書内の指定された段落の終了位置に文字列を挿入するには、Range【レンジ】オブジェクトのInsertAfter【インサートアフター】メソッドを使用します。
InsertAfter【インサートアフター】メソッドの書式と設定値(引数)の説明
オブジェクト.InsertAfter( Text )
- オブジェクト(必須)
Word文書の段落内の特定の部分を表すRangeオブジェクトを指定します。 - Text【テキスト】(必須)
挿入する文字列を指定します。
SaveAs2【セーブアズツー】メソッド
Word文書を「名前を付けて保存」するには、Document【ドキュメント】オブジェクトのSaveAs2【セーブアズツー】メソッドを使用します。
SaveAs2【セーブアズツー】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.SaveAs2( [FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks, CompatibilityMode] )
- オブジェクト(必須)
Word文書を表すDocument【ドキュメント】型のオブジェクト変数を指定します。 - FileName【ファイルネーム】(省略可)
保存先(パス)を含むファイル名を指定します。既に存在するファイル名を指定した場合(同じパスにある場合)は上書き保存されます。保存先(パス)を指定しない場合はカレントフォルダーに保存されます。また、省略した場合で、文書が1度も保存されていない場合は、標準の名前でカレントフォルダーに保存されます。 - FileFormat【ファイルフォーマット】(省略可)
文書の保存形式を指定します。WdSaveFormat 列挙型の定数で指定します。主なWdSaveFormat 列挙型の定数 定数 内容 wdFormatDocument Microsoft Word 形式(既定値) wdFormatHTML 標準 HTML 形式 wdFormatRTF リッチ テキスト形式 (RTF) wdFormatTemplate Microsoft Word テンプレート形式 wdFormatEncodedText エンコードされたテキスト形式 wdFormatUnicodeText Unicode テキスト形式 wdFormatXML XML形式 - LockComments【ロックコメンツ】(省略可)
True を指定すると、コメント用の文書をロックします。既定値は False です。 - Password【パスワード】(省略可)
文書を開くためのパスワードを文字列で指定します。 - AddToRecentFiles【アドトゥリセントファイル】(省略可)
True を指定すると、最近使用したファイルのリストに文書を追加します。既定値は True です。 - WritePassword【ライツパスワード】(省略可)
文書に変更を保存するためのパスワードを文字列で指定します。 - ReadOnlyRecommended【リードオンリーレコメンデット】(省略可)
True を指定すると、文書が開かれるときは常に読み取り専用にします。既定値は False です。 - EmbedTrueTypeFonts【エムベットトゥルータイプフォンツ】(省略可)
True を指定すると、文書と共に TrueType フォントを保存します。 - SaveNativePictureFormat【セーブネーティブピクチャーフォーマット】(省略可)
画像が別のプラットフォームからインポートされた場合
True を指定するとインポートされた画像のMicrosoft Windows バージョンのみが保存されます。 - SaveFormsData【セーブフォムズデータ】(省略可)
True を指定すると、ユーザーが入力したデータはフォームにレコードとして保存されます。 - SaveAsAOCELetter【セーブアズエーオーシーイーレター】(省略可)
文書にメーラーが添付されている場合True を指定すると文書は AOCE レターとして保存されます 。 - Encoding【エンコーディング】(省略可)
保存された文書を表示するときに使用する、文書のエンコードを指定します。MsoEncoding クラスの定数で指定します。有効な MsoEncoding クラスの定数の一覧については、Visual Basic Editor のオブジェクト ブラウザーを参照してください。既定値はシステム コード ページです。 - InsertLineBreaks【インサートラインブレークス】(省略可)
文書をテキスト ファイルとして保存する場合True を指定するとテキストの各行の最後に改行が挿入されます。 - AllowSubstitutions【アローサブシュツティーションズ】(省略可)
文書をテキスト ファイルとして保存する場合True を指定するといくつかの記号が類似したテキストに置換されます。既定値は False です。 - LineEnding【ラインエンディング】(省略可)
テキストファイルとして保存された文書に改行と段落区切りを指定しますWdLineEndingType列挙型の定数を指定します。WdLineEndingType列挙型の定数 定数 値 内容 wdCRLF 0 復帰 + 改行(既定値) wdLFOnly 2 改行のみ - AddBiDiMarks【アドビーアイディアイマークス】(省略可)
True を指定すると、出力ファイルに制御文字を追加して元の文書のテキストの双方向レイアウトを保存します。 - CompatibilityMode【コンパティビリティモード】(省略可)
文書を開くときに Word で使用する互換モードです。WdCompatibilityMode 列挙型の定数を指定します。WdCompatibilityMode 列挙型の定数 定数 値 内容 wdWord2013 15 Wordのすべての機能が有効になります。(既定値) wdWord2010 14 Word2010で最も互換性のあるモード wdWord2007 12 Word2007で最も互換性のあるモード wdWord2003 11 Word2003で最も互換性のあるモード wdCurrent 65535 互換モードがWordの最新バージョンに相当します。
Save【セーブ】メソッド
Word文章を「上書き保存」するには、Document【ドキュメント】オブジェクトのSave【セーブ】メソッドを使用します。
Save【セーブ】メソッドの書式と設定値の説明
オブジェクト.Save
- オブジェクト(必須)
Word文書を表すDocument【ドキュメント】型のオブジェクト変数を指定します。
Close【クローズ】メソッド
Word文書を閉じるには、Document【ドキュメント】オブジェクトのClose【クローズ】メソッドを使用します。
Close【クローズ】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Close([SaveChanges, OriginalFormat, RouteDocument])
- オブジェクト(必須)
Word文書を表すDocument【ドキュメント】型のオブジェクト変数を指定します。 - SaveChanges【セーブチェンジズ】(省略可)
文書の保存方法を指定します。WdSaveOptions列挙型の定数で指定します。WdSaveOptions列挙型の定数 定数 値 内容 wdDoNotSaveChanges 0 保留中の変更を保存しません。 wdPromptToSaveChanges -2 保留中の変更を保存するかどうかをユーザーに確認します。 wdSaveChanges -1 保留中の変更をユーザーに確認しないで自動的に保存します。 - OriginalFormat【オリジナルフォーマット】(省略可)
文書の保存形式を指定します。WdOriginalFormat 列挙型の定数で指定します。WdOriginalFormat 列挙型の定数 定数 値 内容 wdWordDocument 0 Word 文書形式 wdOriginalDocumentFormat 1 元の文書形式 wdPromptUser 2 文書形式を確認するダイアログ ボックスを表示 - RouteDocument【ルートドキュメント】(省略可)
文書を回覧するには、True に設定します。文書に回覧先が指定されていない場合、この引数は無視されます。
Quit【クエイト】メソッド
Wordを終了するには、Application【アプリケーション】オブジェクトのQuit【クエイト】メソッドを使用します。
Quit【クエイト】メソッドの書式と設定値(引数)の説明
[]内は省略可能です。
オブジェクト.Quit( [SaveChanges, Format, RouteDocument] )
- オブジェクト(必須)
Wordを表すApplicationオブジェクトのインスタンスが格納されている「オブジェクト変数」を指定します。 - SaveChanges【セーブチェンジズ】(省略可)
Word を終了する前に文書の変更箇所を保存するかどうかを指定しますWdSaveOptions列挙型の定数で指定します。WdSaveOptions列挙型の定数 定数 値 内容 wdDoNotSaveChanges 0 保留中の変更を保存しません。 wdPromptToSaveChanges -2 保留中の変更を保存するかどうかをユーザーに確認します。 wdSaveChanges -1 保留中の変更をユーザーに確認しないで自動的に保存します。 - OriginalFormat【オリジナルフォーマット】(省略可)
元のファイル形式が Word 文書形式でない文書保存するときの方法を指定します。WdOriginalFormat列挙型の定数で指定します。WdOriginalFormat 列挙型の定数 定数 値 内容 wdWordDocument 0 Word 文書形式 wdOriginalDocumentFormat 1 元の文書形式 wdPromptUser 2 文書形式を確認するダイアログ ボックスを表示 - RouteDocument【ルートドキュメント】(省略可)
文書を回覧するには、True に設定します。文書に回覧先が指定されていない場合、この引数は無視されます。
使用例
「Excelで作成した表をWordドキュメントに書き出す」をご覧ください。
以上で、Wordを操作する主なプロパティとメソッドについての解説を終了します。ありがとうございました。