Word VBA ワード文書の語群をExcelの辞書を使って置換
目次
ワード文書の語群をExcelの辞書を使って置換
ここでは、ワードの文書を、Excelの置換辞書を使って、語群変換する事例を紹介します。
このコードは、水野麻子さんが、下記サイトで公開されているコードを使わせていただきました。
外国語と文書作成&翻訳の情報源
【Word】訳語の一括置換・自動入力
http://ameblo.jp/saglasie/entry-10562628443.html
また、ワイルドカードの使い方も、水野麻子さんの労作、「Wordワイルドカード徹底活用ガイド」を参照させていただきました。
http://docs.google.com/fileview?id=0BxWizratvzI9M2NlNjRjNjAtNDlmOS00NzRjLWFhNTUtNjI3YWU3MWFiYzZj&hl=ja
マクロのコード一覧
http://ameblo.jp/saglasie/entry-10474808011.html
VBA05 から、フォント色を指定して、置換対象を絞り込めるようにしました。
同様の考えで、Excelブックの内容を置換するマクロは、Excel関数の VLOOKUP をマクロで(セル置換)を参照下さい。
このサイトの VBA コードは、クリエイティブ・コモンズのライセンス・パターンの内、
「表示-非営利-継承 Attribution-NonCommercial-ShareAlike」に準拠して、公開します。
「表示-非営利-継承」の条件では、無断で複製、改変、転載できます。連絡や承諾の必要はありません。
解説:
ColorIndex と WdColor 列挙型
https://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.word.wdcolor(v=office.11).aspx
https://msdn.microsoft.com/ja-jp/library/office/ff196272.aspx
ワード文書に含まれるフォント色の ColorIndex は、下記のマクロを使って一覧できます。
文書中のフォント名と色の一覧を出力
名前 | ColorIndex | WdColor 列挙型 | 説明 | 値 |
wdAuto | 0 | wdColorAutomatic | 自動設定。通常の既定値は黒です。 | -16777216 |
wdBlack | 1 | wdColorBlack | 黒 | 0 |
wdBlue | 2 | wdColorBlue | 青 | 16711680 |
wdTurquoise | 3 | wdColorTurquoise | 水色 | 16776960 |
wdBrightGreen | 4 | wdColorBrightGreen | 明るい緑 | 65280 |
wdPink | 5 | wdColorPink | ピンク | 16711935 |
wdRed | 6 | wdColorRed | 赤 | 255 |
wdYellow | 7 | wdColorYellow | 黄 | 65535 |
wdWhite | 8 | wdColorWhite | 白 | 16777215 |
wdDarkBlue | 9 | wdColorDarkBlue | 濃い青 | 8388608 |
wdTeal | 10 | wdColorTeal | 青緑 | 8421376 |
wdGreen | 11 | wdColorGreen | 緑 | 32768 |
wdViolet | 12 | wdColorViolet | 紫 | 8388736 |
wdDarkRed | 13 | wdColorDarkRed | 濃い赤 | 128 |
wdDarkYellow | 14 | wdColorDarkYellow | 濃い黄 | 32896 |
wdGray50 | 15 | wdColorGray50 | 網かけ 50 の灰色 | 8421504 |
wdGray25 | 16 | wdColorGray25 | 網かけ 25 の灰色 | 12632256 |
Find.Execute メソッド (Word)
https://msdn.microsoft.com/ja-jp/library/office/ff193977.aspx
指定された検索を実行します。検索が正しく実行できた場合、True を返します。ブール型 (Boolean) の値を使用します。
構文
式.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl)
式 必ず指定します。Find オブジェクトを表す変数を指定します。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
FindText | 省略可能 | バリアント型 (Variant) | 検索する文字列を指定します。
書式だけを検索する場合は、空文字列 ("") を指定します。
適切な文字コードを指定すると、特殊文字を検索できます。
たとえば、"^p" は段落記号に対応し、"^t" はタブ文字に対応しています。 |
MatchCase | 省略可能 | バリアント型 (Variant) | True を設定すると、検索文字列の大文字と小文字が区別されます。
[検索と置換] ダイアログ ボックス ([編集] メニュー) の [大文字と小文字を区別する] チェック ボックスに対応しています。 |
MatchWholeWord | 省略可能 | バリアント型 (Variant) | 単語全体を検索対象とし、長い単語の一部は対象としないようにする場合は、True を設定します。
[検索と置換] ダイアログ ボックスの [完全に一致する単語だけを検索する] チェック ボックスに対応しています。 |
MatchWildcards | 省略可能 | バリアント型 (Variant) | 検索文字列として特殊な検索演算子を指定する場合は、True を設定します。
[検索と置換] ダイアログ ボックスの [ワイルドカードを使用する] チェック ボックスに対応しています。 |
MatchSoundsLike | 省略可能 | バリアント型 (Variant) | 検索文字列と類似した単語を検索する場合、True を設定します。
[検索と置換] ダイアログ ボックスの [あいまい検索 (英)] チェック ボックスに対応しています。 |
MatchAllWordForms | 省略可能 | バリアント型 (Variant) | True を設定すると、英単語の他の活用形も検索されます。
たとえば、"sit" の場合は "sitting" や "sat" も検索されます。
[検索と置換] ダイアログ ボックスの [英単語の異なる活用形も検索する] チェック ボックスに対応しています。 |
Forward | 省略可能 | バリアント型 (Variant) | True を設定すると、下方向に検索されます。 |
Wrap | 省略可能 | バリアント型 (Variant) | 文書の先頭以外の場所から検索を開始して、文書の末尾まで検索された後に行う処理を指定します。
引数 Forward に False を設定した場合は、文書の先頭まで検索された後の処理を指定します。
この引数には、選択範囲または指定範囲内での検索で、検索文字列が見つからない場合の処理を指定することもできます。
いずれかの WdFindWrap クラスの定数を指定できます。 |
Format | 省略可能 | バリアント型 (Variant) | True を設定すると、検索文字列と書式または書式のみの検索が行われます。 |
ReplaceWith | 省略可能 | バリアント型 (Variant) | 置換文字列を指定します。
引数 Find によって指定された文字列を削除するには、空文字列 ("") を使用します。引数 Find と同じように、特殊文字や高度な検索条件を指定できます。
グラフィック オブジェクトまたはその他の文字列以外の項目を置換文字列として指定するには、クリップボードにコピーし、引数 ReplaceWith に "^c" を指定します。 |
Replace | 省略可能 | バリアント型 (Variant) | 置換文字列を置換する個数 (1 つだけ、すべて、または置換しない) を指定します。
WdReplace クラスの定数を使用します。 |
MatchKashida | 省略可能 | バリアント型 (Variant) | True を設定すると、アラビア言語の文書内で kashida と一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。 |
MatchDiacritics | 省略可能 | バリアント型 (Variant) | True を設定すると、右から左へ記述された言語の文書内で diacritics と一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。 |
MatchAlefHamza | 省略可能 | バリアント型 (Variant) | True を設定すると、アラビア言語の文書内で alef hamzas に一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。 |
MatchControl | 省略可能 | バリアント型 (Variant) | True を設定すると、右から左へ記述された言語の文書内で文字列の方向を制御する文字の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。 |
MatchPrefix | 省略可能 | バリアント型 (Variant) | True を設定すると、検索文字列で始まる単語が検出されます。
[検索と置換] ダイアログ ボックスの [接頭辞に一致する] チェック ボックスに対応しています。 |
MatchSuffix | 省略可能 | バリアント型 (Variant) | True を設定すると、検索文字列で終わる単語が検出されます。
[検索と置換] ダイアログ ボックスの [接尾辞に一致する] チェック ボックスに対応しています。 |
MatchPhrase | 省略可能 | バリアント型 (Variant) | True を設定すると、単語間のすべての空白文字および制御文字が無視されます。 |
IgnoreSpace | 省略可能 | バリアント型 (Variant) | True を設定すると、単語間のすべての空白が無視されます。
[検索と置換] ダイアログ ボックスの [空白文字を無視する] チェック ボックスに対応しています。 |
IgnorePunct | 省略可能 | バリアント型 (Variant) | True を設定すると、単語間のすべての区切り記号が無視されます。
[検索と置換] ダイアログ ボックスの [句読点を無視する] チェック ボックスに対応しています。 |
戻り値
ブール型 (Boolean)
説明
MatchWildcards が True に設定されている場合、引数 FindText にワイルドカード文字やその他の高度な検索条件を指定できます。
たとえば、"*(ing)" を指定すると、最後が "ing" で終わる単語がすべて検索されます。
記号を検索する場合、キャレット (^) とゼロ (0) を入力し、記号の文字コードを入力します。たとえば、"^0151" は全角ダッシュ (?) に対応します。
他の方法で指定しない限り、置換文字列は置換前の文字列の書式を文書内で継承します。たとえば、文字列 "abc" を "xyz" に置換する場合、文字列 "abc" に太字の書式が設定されていると、文字列 "xyz" にも太字の書式が設定されて置換されます。
また、引数 MatchCase に False を設定した場合、元の検索文字列が大文字であると、置換後の文字列の大文字小文字に関係なく、大文字の文字列に置換されます。前の例の場合、文字列 "ABC" は "XYZ" に置換されます。
参照設定
Word VBA の中で、Excel VBA の定数を使うためには、右のように、ツール・メニューで、参照設定を追加します。
上記でダウンロードしたマクロを実行して、「コンパイル エラー」が表示されたら、お使いの Excel とバージョンが違うことが考えられます。
「参照不可」の部分のチェックを一旦外します。そして、リストをスクロールして、表示される参照可能のバージョンの Excel に、チェックを入れなおして下さい。
文字列の検索、置換、および書式設定
検索および置換は、Find および Replacement オブジェクトを使用して行います。
Find オブジェクトを使用するには、まず Selection または Range オブジェクトを指定する必要があります。
ただし、Find オブジェクトに Selection オブジェクトからアクセスした場合と、Range オブジェクトからアクセスした場合では、検索の動作が少し異なります。
文字列を検索し、選択する
Find オブジェクトに Selection オブジェクトからアクセスした場合、検索条件に一致する文字列が検出されると、選択範囲が変更されます。
次の使用例は、"Hello" という文字列が次に使用されている箇所を選択します。
"Hello" という文字列が検出される前に文書の末尾に達した場合、検索の処理は中止されます。
Find オブジェクトには、[検索と置換] ダイアログ ボックス ([編集] - [検索]) のオプションに関連するプロパティが用意されています。
Find オブジェクトのプロパティは個別に設定することも、次の使用例に示すように、Execute メソッドの引数として使用することもできます。
選択範囲を変更せずに文字列を検索する
Find オブジェクトを Range オブジェクトからアクセスした場合、検索条件に一致する文字列が検出されると、選択範囲は変わらずに Range オブジェクトが再定義されます。
次の使用例は、作業中の文書の中で、"blue" という文字列が最初に使用されている箇所を検索します。
検索の処理が正常に終了すると、指定範囲が再定義され、"blue" という文字列に太字が設定されます。
次の使用例は、Execute メソッドの引数を使用して前の使用例と同じ処理を行います。
Replacement オブジェクトの使い方
Replacement オブジェクトは、検索または置換の置換後の文字列を表します。Replacement オブジェクトのプロパティおよびメソッドは、[検索と置換] ダイアログ ボックス ([編集] メニュー) のオプションに対応します。
Replacement オブジェクトは、Find オブジェクトからアクセスします。
次の使用例は、"前略" という文字列をすべて "拝啓" に置換します。
Selection オブジェクトから Find オブジェクトにアクセスするので、検索文字列が検出されると、選択範囲が変更されます。
次の使用例は、作業中の文書内の太字の書式を削除します。
Find オブジェクトの Bold プロパティに True を設定し、Replacement オブジェクトの Bold プロパティに False を設定します。
書式を検索し、置換するには、検索と置換の文字列を長さ 0 の文字列 ("") に設定し、Execute メソッドの引数 Format を True に設定します。
Range オブジェクトから Find オブジェクトにアクセスするので、選択範囲は変更されません。
Content プロパティでは Range オブジェクトが取得されます。
Find オブジェクト は、検索に使用する条件を表します。
Find オブジェクトのプロパティとメソッドは [検索と置換] ダイアログ ボックスのオプションと対応します。
Find プロパティを使用して Find オブジェクトを取得します。
次の使用例は、単語 "hi" が次に使用されている箇所を検索し、選択します。
次の使用例は、作業中の文書で単語 "hi" が使用されているすべての箇所を検索し、"hello" に置き換えます。
Selection オブジェクトから Find オブジェクトを取得した場合、検索条件と一致する文字列が見つかると、選択範囲が変更されます。
次の使用例は、単語 "blue" が次に使用されている箇所を検索し、選択します。
Range オブジェクトから Find オブジェクトを取得した場合、検索条件と一致する文字列が見つかっても、選択範囲は変更されませんが、Range オブジェクトが再定義されます。
次の使用例は、作業中の文書で単語 "blue" が最初に使用されている箇所を検索します。
文書内で "blue" が見つかった場合、myRange
が再定義され、太字の書式が "blue" に適用されます。
Selection.Find プロパティ は、検索条件を含む Find オブジェクトを取得します。値の取得のみ可能です。
構文
式.Find
式 Selection オブジェクトを表す変数を指定します。
備考
検索操作が正しく実行されると、選択部分が変更されます。
次の使用例は、単語 "Microsoft" があるかどうか、文書全体を下方向に検索します。
この単語が見つかった場合、単語は自動的に選択されます。
Replacement オブジェクト は、検索と置換に使用する条件を表します。Replacement オブジェクトのプロパティとメソッドは [検索と置換] ダイアログ ボックスのオプションと対応します。
Replacement プロパティを使用して Replacement オブジェクトを取得します。
次の使用例は、次に単語 "hi" が使用されている箇所を単語 "hello" で置き換えます。
書式を検索置換するには、検索する文字列と置換後の文字列の両方に長さ 0 の文字列 ("") を設定し、Execute メソッドの引数 Format に True を設定します。
次の使用例は、作業中の文書のすべての太字の書式を削除します。
この場合、Bold プロパティの値は、Find オブジェクトについては True、Replacement オブジェクトについては False を設定します。
Replacement プロパティ は、置換操作の条件を含む Replacement オブジェクトを取得します。
expression.Replacement
expression 必ず指定します。Find オブジェクトを表すオブジェクト式を指定します。
次の使用例は、作業中の文書から太字の書式を削除します。
Bold プロパティの値は、Find オブジェクトでは True、Replacement オブジェクトでは False です。
次の使用例は、作業中の文書で単語 "Start" をすべて検索し、"End" に置き換えます。
検索では、書式は無視し、大文字と小文字を区別して検索文字列 ("Start") と一致する文字列を検索します。
Bold プロパティ は、True を設定すると、選択範囲の文字に太字の書式が設定されます。
取得できる値は、True、 False、定数 wdUndefined (True と False の両方) のいずれかです。
設定できる値は、True、 False、定数 wdToggle のいずれかです。値の取得および設定が可能です。長整数型 (Long) の値を使用します。
次の使用例は、新しい文書の 6 番目の単語の書式を太字に設定します。
次の使用例は、選択範囲の一部の書式が太字に設定されている場合、選択範囲全体の書式を太字に設定します。
次の使用例は、選択した文字列の書式の太字と標準を切り替えます。
次の使用例は、作業中の文書で最初の段落の書式を太字に設定します。
MatchByte プロパティ は、True を設定すると、検索時にアルファベットまたはカタカナの全角文字と半角文字が区別されます。値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。
次の使用例は、文字の全角と半角を区別せずに指定範囲内で "マイクロソフト" という語を検索します。
MatchWildcards プロパティ は、検索する文字列にワイルドカードが含まれている場合、このプロパティの値は True です。
これは、[検索と置換] ダイアログ ボックス ([編集] メニュー) の [ワイルドカードを使用する] チェック ボックスに対応します。
値の取得および設定が可能です。ブール型 (Boolean) の値を使用します。
expression.MatchWildcards
expression 必ず指定します。Find オブジェクトを表すオブジェクト式を指定します。
文書内で検索する文字列を指定するには、Find オブジェクトの Text プロパティまたは Execute メソッドの引数 FindText を使用します。
注:
MatchPhrase、MatchWildcards、 MatchSoundsLike、MatchAllWordForms、MatchFuzzy パラメーターは、同時に True に設定することはできません。
明示的に False の指定をして、かつ False の行を True の行の前に置かないと、実行時エラー '6182' となります。
MatchPhrase |
単語間のすべての空白文字および制御文字が無視されます。 |
MatchWildcards |
True に設定すると、検索する文字列をワイルドカードを含む文字列と解釈します。 |
MatchSoundsLike |
True に設定すると、検索文字列に類似した単語が検索対象となります。 |
MatchAllWordForms |
True に設定すると、検索文字列のすべての活用形が検索対象となります。 |
MatchFuzzy |
True に設定すると、検索時に日本語の文字列のあいまい検索オプションが使用されます。 |
注意:MS-Word のワイルドカードは、正規表現と微妙に違う点があります。
| 正規表現 | ワイルドカード |
行頭、否定 | ^ | ! |
一文字 | . | ? |
0以上の文字 | .* | * |
単語の先頭 |
| < |
単語の末尾 |
| > |
次の使用例は、"s" で始まり "t" で終わる 3 文字の単語を検索し、検索した単語を選択します。
Word の組み込みのダイアログ ボックスを表示する
注:FileDialog プロパティとの違いを確認して、使い分けて下さい。
組み込みのダイアログ ボックスを表示する
組み込みのダイアログ ボックスを表示して、ユーザーが入力した値や、Visual Basic で Word の動作を制御するための情報を取得することができます。
Dialog オブジェクトの Show メソッドは、Word の組み込みダイアログ ボックスに指定されている処理の内容を表示し、これを実行します。
特定の組み込みダイアログ ボックスにアクセスするには、Dialogs プロパティに WdWordDialog クラスの定数を指定します。
たとえば、次のコードを記述すると [ファイルを開く] ダイアログ ボックス (wdDialogFileOpen) を表示できます。
ファイルを選択し、[OK] をクリックすると、ファイルが開きます (処理が実行されます)。
参考:Word コードライブラリアン(ファイル操作)
http://www.beagle-hc.com/It_program/Word4.html
たとえば、次のコードを記述すると、[印刷] ダイアログ ボックス (wdDialogFilePrint) を表示できます。
Word ダイアログ ボックスの特定のタブにアクセスするには、DefaultTab プロパティを設定します。
次の使用例は、[線種とページ罫線と網かけの設定] ダイアログ ボックス ([罫線] メニュー) の [ページ罫線] タブを表示します。
Display メソッドは、ダイアログ ボックスを表示するだけで、ダイアログ ボックスに指定されている処理は実行しません。
Display メソッドは、組み込みダイアログ ボックスを使用してユーザーに入力を求め、設定値を取得する場合に使用します。
たとえば、次のコードは、[オプション] ダイアログ ボックス ([ツール] メニュー) の [ユーザー情報] タブを表示し、ユーザー名を取得して表示します。
メモ Word の Visual Basic for Applications のプロパティを使用しても、ダイアログ ボックスを表示しないで、ユーザー情報を表示することができます。
次の使用例は、Application オブジェクトの UserName プロパティを使用して、[オプション] ダイアログ ボックスの [ユーザー情報] タブを表示しないで、アプリケーションのユーザー名を表示します。
この使用例でユーザー名が変更されても、ダイアログ ボックスの設定値は変更されません。
ダイアログ ボックスを表示しないで、ダイアログ ボックス内の設定値を実行するには、Execute メソッドを使用します。
次の使用例は、[オプション] ダイアログ ボックス の [ユーザー情報] タブを表示し、ユーザー名が指定されている場合は、Execute メソッドを使用してダイアログ ボックスの設定値を設定します。
メモ ダイアログ ボックスを表示しないでユーザー情報を設定するには、Word VBA のプロパティおよびメソッドを使用します。
次の使用例は、Application オブジェクトの UserName プロパティを使用してユーザー名を変更してから、ユーザー名が変更されたことを表す [オプション] ダイアログ ボックスの [ユーザー情報] タブを表示します。
ダイアログ ボックスの値を変更するために、ダイアログ ボックスを表示する必要はありません。
ダイアログ ボックスの設定値を取得または変更する
ダイアログ ボックスの値をプロパティまたはメソッドを使用して取得したり変更したりできる場合、Dialog オブジェクトを使用して取得または変更する方法は、あまり効率的ではありません。
また、通常 (常にではない)、Dialog オブジェクトにアクセスするより、VBA コードを使用した方がコードが短く簡単です。
したがって、ここには、対応する VBA プロパティを使用して同じ処理を実行する使用例も示します。
Dialog オブジェクトを使用して、ダイアログ ボックスの設定値を取得または変更する前に、ダイアログ ボックスを個別に識別する必要があります。
これは、Dialogs プロパティに WdWordDialog クラスの定数を指定して行います。
Dialog オブジェクトをインスタンス化すると、ダイアログ ボックスのオプションを取得または設定できるようになります。
次の使用例は、[段落] ダイアログ ボックスに設定されている右インデント値を表示します。
メモ Word VBA のプロパティおよびメソッドを使用して、段落の右インデントの設定値を表示することができます。
次の使用例は、ParagraphFormat オブジェクトの RightIndent プロパティを使用して、カーソル位置に段落の右インデントを表示します。
ダイアログ ボックスの設定値を取得するだけでなく、設定することもできます。
次の使用例は、[段落] ダイアログ ボックスの [次の段落と分離しない] チェック ボックスをオンにします。
メモ Word VBA のプロパティおよびメソッドを使用して、段落の右インデント値を変更することもできます。
次の使用例は、ParagraphFormat オブジェクトの KeepWithNext プロパティを使用して、選択された段落が次の段落と分離しないようにします。
ダイアログ ボックスに現在の値を反映するには、Update メソッドを使用します。既にマクロで定義してあるダイアログ ボックス変数を使用して、現在の値を取得したり、変更したりする場合、Update メソッドを使用します。
ダイアログ ボックスを閉じた方法を確認する
Show および Display メソッドの戻り値は、ダイアログ ボックスを閉じるときにクリックされたボタンを表します。
次の使用例は、[改ページ] ダイアログ ボックスを表示し、[OK] がクリックされた場合、ステータス バーにメッセージを表示します。
次の表は、ダイアログ ボックスのボタンに関連する戻り値を示しています。
戻り値 | 説明 |
-2 | [閉じる] ボタン。 |
-1 | [OK] ボタン。 |
0 (ゼロ) | [キャンセル] ボタン。 |
> 0 (ゼロ) | コマンド ボタン。1 は 1 番目のボタン、2 は 2 番目のボタンに対応します。 |
Global.ChangeFileOpenDirectory メソッド は、文書を検索するフォルダを設定します。
構文
式.ChangeFileOpenDirectory(Path)
式 Global オブジェクトを表す変数です。省略可能です。
パラメータ
名前 | 必須/オプション | データ型 | 説明 |
Path | 必須 | 文字列型 (String) | 文書を検索するフォルダへのパスを指定します。 |
指定したフォルダの内容は、次に [ファイルを開く] ダイアログ ボックス ([ファイル] - [開く]) を開いたときに表示されます。
ユーザーが [ファイルを開く] ダイアログ ボックスでフォルダを変更するか、Word の現在のセッションが終了するまで、指定したフォルダから文書が検索されます。
Word のすべてのセッションでの既定の文書用フォルダを変更するには、DefaultFilePath プロパティを使用します。
次の使用例は、文書を検索するフォルダを変更し、"Test.doc" という名前のファイルを開きます。
次の使用例は、文書を検索するフォルダを変更し、[ファイルを開く] ダイアログ ボックスを表示します。
コレクションからオブジェクトを取得する
コレクションから 1 つのオブジェクトを取得するには、Item メソッドを使用します。
次の使用例は、firstDoc
に、Documents コレクション内の 1 番目の文書を表す Document オブジェクトを格納します。
Item メソッドは、ほとんどのコレクションの既定のメソッド(既定のプロパティ : コントロールに設定して、同じ種類のコントロールを作成すると常に同じ設定値を持つようにできるプロパティ)です。Item キーワードを省略してステートメントをより簡潔にすることができます。
名前付きオブジェクト
通常は Item メソッドに整数値を指定しますが、名前を指定する方が便利な場合もあります。
次の使用例は、Sales.doc という文書に切り替えます。
次の使用例は、作業中の文書内の先頭のブックマークが付いている文字列を選択します。
コレクションによっては、インデックスに名前を指定できないものもあります。コレクションの有効なインデックス値を確認するには、コレクション オブジェクトのトピックを参照してください。
定義済みのインデックス値
コレクションによっては、あらかじめ定義されているインデックス値を使用してオブジェクトを取得することができます。
定義済みのインデックス値は、それぞれ定数で表されます。
たとえば、Borders プロパティに WdBorderType クラスの定数を指定すると、1 つの Border オブジェクトを取得できます。
次の使用例は、選択範囲の先頭の段落の下に、300 ポイントの罫線を追加します。
Dialogs プロパティ は、Word のすべての組み込みのダイアログ ボックスを表す Dialogs コレクションを取得します。
値の取得のみ可能です。
FileDialog プロパティとの違いを確認して、使い分けて下さい。
コレクションのメンバーを取得する方法については、「コレクションからオブジェクトを取得する」を参照してください。
次の使用例は、組み込みの [検索と置換] ダイアログ ボックスを表示し、[検索する文字列] ボックスに "Hello" と表示します。
次の使用例は、すべてのファイルの種類を表示する、組み込みの [ファイルを開く] ダイアログ ボックスを表示します。
次の使用例は、[印刷] ダイアログ ボックスの設定を使用して、作業中の文書を印刷します。
Show メソッド は、指定した Word の組み込みのダイアログ ボックスで行われた操作を表示したり、実行したりします。
ダイアログ ボックスを閉じるときにクリックされたボタンを示す長整数型 (Long) の値を返します。
戻り値 | 説明 |
-2 | [閉じる] ボタン。 |
-1 | [OK] ボタン。 |
0 (ゼロ) | [キャンセル] ボタン。 |
> 0 (ゼロ) | コマンド ボタン。1 は 1 番目のボタン、2 は 2 番目のボタンに対応します。 |
ダイアログ ボックスを表示しても、ダイアログ ボックスを閉じるときに操作が実行されないようにしたり、設定が適用されないようにする場合は、Display メソッドを使用します。
expression.Show(TimeOut)
expression 必ず指定します。Dialog オブジェクトを表すオブジェクト式を指定します。
TimeOut 省略可能です。バリアント型 (Variant) の値を指定します。ダイアログ ボックスを自動的に閉じるまでの時間を指定します。基本となる単位は約 0.001 秒です。システム アクティビティを同時に実行すると、有効時間の値が増えます。この引数を省略した場合、ユーザーがダイアログ ボックスを閉じたときにダイアログ ボックスは閉じます。
次の使用例は、[検索する文字列] ボックスに "Blue" という語が入力されている [検索と置換] ダイアログ ボックスを表示します。
次の使用例は、[ファイルを開く] ダイアログ ボックスで行われた操作を表示し、実行します。すべてのファイル名を表示できるように、ファイル名に *.* を設定します。
次の使用例は、[ズーム] ダイアログ ボックスで行われた操作を表示し、実行します。約 9 秒間何の操作も開始されない場合、ダイアログ ボックスを閉じます。
Display メソッド は、ユーザーが閉じるまで、または指定した時間が経過するまで、指定された組み込みダイアログ ボックスを表示します。
ダイアログ ボックスを閉じるためにクリックされたボタンを示す長整数型 (Long) の値を取得します。
戻り値 | 説明 |
-2 | [閉じる] ボタン。 |
-1 | [OK] ボタン。 |
0 (ゼロ) | [キャンセル] ボタン。 |
> 0 (ゼロ) | コマンド ボタン。1 は 1 番目のボタン、2 は 2 番目のボタンに対応します。 |
このメソッドを使ってダイアログ ボックスを表示している間に開始した操作または指定した設定は実行されません。
ダイアログ ボックスを表示し、操作を実行したり、設定を適用したりする場合は、Show メソッドを使用します。
expression.Display(TimeOut)
expression 必ず指定します。Dialog オブジェクトを表すオブジェクト式を指定します。
TimeOut 省略可能です。バリアント型 (Variant) の値を指定します。ダイアログ ボックスが自動的に閉じるまでの時間を指定します。基本の単位は約 0.001 秒です。システム アクティビティを同時に実行すると、有効時間の値が増えます。この引数を省略した場合、ユーザーが閉じたときにダイアログ ボックスは閉じます。
次の使用例は、[バージョン情報] ダイアログ ボックスを表示します。
次の使用例は、[倍率] ダイアログ ボックスを約 9 秒間表示します。
Find オブジェクトの Execute メソッド は、指定された検索を実行します。
検索が正しく実行できた場合、True を返します。ブール型 (Boolean) の値を使用します。
expression.Execute(FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl)
expression 必ず指定します。
Find オブジェクトを表すオブジェクト式を指定します。
FindText 省略可能です。バリアント型 (
Variant) の値を指定します。
検索する文字列を指定します。
書式だけを検索する場合は、空文字列 ("") を指定します。
適切な文字コードを指定すると、特殊文字を検索できます。たとえば、"^p" は段落記号に対応し、"^t" はタブ記号に対応しています。
指定できる特殊文字の一覧については、
「文字列やその他の項目を検索して置換する」を参照ください。
MatchCase 省略可能です。バリアント型 (
Variant) の値を指定します。
True を設定すると、検索文字列の大文字と小文字が区別されます。
[検索と置換] ダイアログ ボックス ([編集] メニュー) の [大文字と小文字を区別する] チェック ボックスに対応しています。
MatchWholeWord 省略可能です。バリアント型 (
Variant) の値を指定します。
単語全体を検索対象とし、長い単語の一部は対象としないようにする場合は、
True を設定します。
[検索と置換] ダイアログ ボックスの [完全に一致する単語だけを検索する] チェック ボックスに対応しています。
MatchWildcards 省略可能です。バリアント型 (
Variant) の値を指定します。
検索文字列として特殊な検索演算子を指定する場合は、
True を設定します。
[検索と置換] ダイアログ ボックスの [ワイルドカードを使用する] チェック ボックスに対応しています。
MatchSoundsLike 省略可能です。バリアント型 (
Variant) の値を指定します。
検索文字列と類似した単語を検索する場合、
True を設定します。
[検索と置換] ダイアログ ボックスの [あいまい検索 (英)] チェック ボックスに対応しています。
MatchAllWordForms 省略可能です。バリアント型 (
Variant) の値を指定します。
True を設定すると、英単語の他の活用形も検索されます。たとえば、"sit" の場合は "sitting" や "sat" も検索されます。
[検索と置換] ダイアログ ボックスの [英単語の異なる活用形も検索する] チェック ボックスに対応しています。
Forward 省略可能です。バリアント型 (
Variant) の値を指定します。
True を設定すると、下方向に検索されます。
Wrap 省略可能です。バリアント型 (
Variant) の値を指定します。
文書の先頭以外の場所から検索を開始して、文書の末尾まで検索された後に行う処理を指定します。
引数
Forward に
False を設定した場合は、文書の先頭まで検索された後の処理を指定します。
この引数には、選択範囲または指定範囲内での検索で、検索文字列が見つからない場合の処理を指定することもできます。
使用できる定数は、次に示す
WdFindWrap クラスの定数のいずれかです。
wdFindAsk | 選択範囲または指定範囲を検索し、文書の残りの部分も検索するかどうかをたずねるメッセージを表示します。 |
wdFindContinue | 検索範囲の先頭または末尾まで検索し、さらに検索を続けます。 |
wdFindStop | 検索範囲の先頭または末尾まで検索したら、検索を終了します。 |
Format 省略可能です。バリアント型 (Variant) の値を指定します。
True を設定すると、検索文字列と書式または書式のみの検索が行われます。
ReplaceWith 省略可能です。バリアント型 (Variant) の値を指定します。
置換文字列を指定します。
引数 Find によって指定された文字列を削除するには、空文字列 ("") を使用します。
引数 Find と同じように、特殊文字や高度な検索条件を指定できます。
グラフィック オブジェクトまたはその他の文字列以外の項目を置換文字列として指定するには、クリップボードにコピーし、引数 ReplaceWith に "^c" を指定します。
Replace 省略可能です。バリアント型 (Variant) の値を指定します。
置換文字列を置換する個数 (1 つだけ、すべて、または置換しない) を指定します。
使用できる定数は、次に示す WdReplace クラスの定数のいずれかです。
wdReplaceAll | すべて置換する |
wdReplaceNone | 置換しない |
wdReplaceOne | 1 つだけ置換する |
MatchKashida 省略可能です。バリアント型 (Variant) の値を指定します。
True を設定すると、アラビア言語の文書内で kashida と一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。
MatchDiacritics 省略可能です。バリアント型 (Variant) の値を指定します。
True を設定すると、右から左へ記述された言語の文書内で diacritics と一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。
MatchAlefHamza 省略可能です。バリアント型 (Variant) の値を指定します。
True を設定すると、アラビア言語の文書内で Alef Hamza に一致する文字列の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。
MatchControl 省略可能です。バリアント型 (Variant) の値を指定します。
True を設定すると、右から左へ記述された言語の文書内で文字列の方向を制御する文字の検索が行われます。
この引数は、選択またはインストールされている言語の設定 (たとえば、日本語) によっては使用できない場合があります。
MatchWildcards が True に設定されている場合、引数 FindText にワイルドカード文字やその他の高度な検索条件を指定できます。
たとえば、"*(ing)" を指定すると、最後が "ing" で終わる単語がすべて検索されます。
記号を検索する場合、キャレット (^) とゼロ (0) を入力し、記号の文字コードを入力します。
たとえば、"^0151" は全角ダッシュ (−) に対応します。
他の方法で指定しない限り、置換文字列は置換前の文字列の書式を文書内で受け継ぎます。
たとえば、文字列 "abc" を "xyz" に置換する場合、文字列 "abc" に太字の書式が設定されていると、文字列 "xyz" にも太字の書式が設定されて置換されます。
また、引数 MatchCase に False を設定した場合、元の検索文字列が大文字であると、検索する文字列および置換後の文字列の大文字小文字に関係なく、大文字の文字列に置換されます。
前の例の場合、文字列 "ABC" は "XYZ" に置換されます。
次の使用例は、単語 "library" を検索し、次に、検索された "library" を選択します。
次の使用例は、作業中の文書で単語 "前略" を検索し、すべての "前略" を "拝啓" に置き換えます。
Characters コレクション オブジェクト は、選択範囲、指定範囲、または文書内の文字のコレクションを表します。Character オブジェクトはありません。Characters コレクションの各項目は、1 文字を表す Range オブジェクトです。
使い方
Characters プロパティを使用して Characters コレクションを取得します。
次の使用例は、選択されている文字の数を表示します。
MsgBox Selection.Characters.Count & " 文字が選択されました。"
Characters(index) を使用して 1 文字を表す Range オブジェクトを取得します。引数 index にはインデックス番号を指定します。インデックス番号は Characters コレクションでの文字の位置を表します。
次の使用例は、選択範囲の最初の文字に太字を設定し、大きさを 24 ポイントにします。
解説
文書内のこのコレクションに Count プロパティを使用して、メイン ストーリー(文書内でほかの領域とは区別できるテキストを含む文書の領域。たとえば、文書に本文、脚注、およびヘッダーが含まれている場合は、本文ストーリー、脚注ストーリー、およびヘッダー ストーリーが含まれています。)に含まれる項目の数を取得します。ほかのストーリーに含まれる項目の数を取得するには、Range オブジェクトと共にコレクションを使用します。
Characters コレクションに対して Add メソッドは使用できません。その代わりに、InsertAfter または InsertBefore メソッドを使用して、文字を Range オブジェクトに追加します。
次の使用例は、作業中の文書で最初の段落の後に新しい段落を挿入します。
InsertAfter メソッド は、選択範囲の終了位置に指定された文字列を挿入します。このメソッドを使用すると、新しく挿入した文字列の数だけ選択範囲が拡張されます。
expression.InsertAfter(Text)
expression 必ず指定します。Selection または Range オブジェクトを表すオブジェクト式を指定します。
Text 必ず指定します。文字列型 (String) の値を指定します。挿入する文字列を指定します。
解説
InsertAfter メソッドで Visual Basic の Chr 関数を使用すると、引用符、タブ、改行しないハイフンなどを挿入できます。Visual Basic 定数の vbCr、vbLf、vbCrLf、および vbTab も使用できます。
段落全体を選択して InsertAfter メソッドを使用すると、文字列は次の段落の先頭に挿入されます。選択した段落の末尾に文字列を挿入するには、次の使用例に示すように終了位置を決め、その位置から 1 を引きます。段落記号は 1 文字として扱われます。
ただし、段落記号も含めて選択した範囲が文書の最後の場合は、文書の最後に新しい段落が追加されるのではなく、文字列は最後の段落記号の前に挿入されます。
また、選択範囲がブックマークの場合は、指定された文字列は挿入されますが、新しく挿入した文字列まで選択範囲は拡張されません。
次の使用例は、作業中の文書の末尾に文字列を挿入します。Content プロパティは Range オブジェクトを取得します。
次の使用例は、選択範囲の終了位置に文字列を挿入し、選択を解除し、選択終了位置にカーソルを移します。
次の使用例は、入力ボックスの文字列を作業中の文書の 2 番目の段落として挿入します。
InsertBefore メソッド は、指定された選択範囲または指定範囲の前に指定された文字列を挿入します。
文字列が挿入されると、選択範囲または指定範囲は新しい文字列の数だけ範囲が拡張されます。
選択範囲または指定範囲がブックマークの場合も、新しい文字列の数だけ範囲が拡張されます。
expression.InsertBefore(Text)
expression 必ず指定します。Range または Selection オブジェクトを表すオブジェクト式を指定します。
Text 必ず指定します。文字列型 (String) の値を指定します。挿入する文字列を指定します。
InsertBefore メソッドで Visual Basic の Chr 関数を使用すると、引用符、タブ、改行しないハイフンなどを挿入できます。Visual Basic 定数の vbCr、vbLf、vbCrLf、および vbTab も使用できます。
次の使用例は、選択範囲の前に二重引用符で囲まれた文字列 "Hamlet" を挿入し、選択範囲の選択を解除します。
次の使用例は、作業中の文書の先頭に、新しい段落として文字列 "はじめに" を挿入します。
次の使用例は、FontNames コレクションのすべてのフォント名を新しい文書に挿入します。
Dialog オブジェクト は、組み込みのダイアログ ボックスを表します。
Dialog オブジェクトは Dialogs コレクションのメンバーです。
Dialogs コレクションには、Word のすべての組み込みのダイアログ ボックスが含まれます。
新しい組み込みのダイアログ ボックスを作成したり、Dialogs コレクションに追加することはできません。
Dialogs(Index) を使用して 1 つの Dialog オブジェクトを取得します (Index には、ダイアログ ボックスを識別する WdWordDialog クラスの定数を指定)。次の使用例は、組み込みの [ファイルを開く] ダイアログ ボックスで選択された動作を表示し実行します。
WdWordDialog クラスの定数は、接頭辞 "wdDialog" とメニューおよびダイアログ ボックスの名前で構成されます。
たとえば、[ページ設定] ダイアログ ボックスを指定する定数は wdDialogFilePageSetup です。
[新規作成] ダイアログ ボックスを指定する定数は wdDialogFileNew です。
Word の組み込みのダイアログ ボックスを使用する方法については、「Word の組み込みのダイアログ ボックスを表示する」を参照してください。
Dialog.Show メソッド は、指定した Word の組み込みのダイアログ ボックスで行われた操作を表示したり、実行したりします。
ダイアログ ボックスを閉じるときにクリックされたボタンを示す長整数型 (Long) の値を返します。
構文
式.Show(TimeOut)
式 必ず指定します。Dialog オブジェクトを表す変数を指定します。
パラメーター
名前 | 必須/オプション | データ型 | 説明 |
TimeOut | オプション | バリアント型 (Variant) | ダイアログ ボックスを自動的に閉じるまでの時間を指定します。基本となる単位は約 0.001 秒です。システム アクティビティを同時に実行すると、有効時間の値が増えます。この引数を省略した場合、ユーザーがダイアログ ボックスを閉じたときにダイアログ ボックスは閉じます。 |
戻り値
長整数型 (Long)
Show メソッドが返す値の意味を、次の表に示します。
戻り値 | 説明 |
-2 | [閉じる] ボタン。 |
-1 | [OK] ボタン。 |
0 (ゼロ) | [キャンセル] ボタン。 |
> 0 (ゼロ) | コマンド ボタン。1 は 1 番目のボタン、2 は 2 番目のボタンに対応します。 |
次の使用例は、[検索する文字列] ボックスに "Blue" という語が入力されている [検索と置換] ダイアログ ボックスを表示します。
次の使用例は、[ファイルを開く] ダイアログ ボックスで行われた操作を表示し、実行します。すべてのファイル名を表示できるように、ファイル名に *.* を設定します。
次の使用例は、[ズーム] ダイアログ ボックスで行われた操作を表示し、実行します。約 9 秒間何の操作も開始されない場合、ダイアログ ボックスを閉じます。
Application.Dialogs プロパティ は、Word のすべての組み込みのダイアログ ボックスを表す Dialogs コレクションを取得します。値の取得のみ可能です。
構文
式.Dialogs
式 Application オブジェクトを表す変数を指定します。
コレクションのメンバーを取得する方法については、「コレクションからオブジェクトを取得する」を参照してください。
次の使用例は、組み込みの [検索] ダイアログ ボックスを表示し、[検索する文字列] ボックスに "Hello" と表示します。
次の使用例は、すべてのファイルの種類を表示する、組み込みの [開く] ダイアログ ボックスを表示します。
次の使用例は、[印刷] ダイアログ ボックスの設定を使用して、作業中の文書を印刷します。
Dialog.DefaultTab プロパティ は、指定されたダイアログ ボックスが表示されたときに、現在のタブを設定します。値の取得および設定が可能です。WdWordDialogTab クラスの定数を使用します。
構文
式.DefaultTab
式 必ず指定します。Dialog オブジェクトを表す変数です。
次の使用例は、[用紙] タブが選択されている状態の [ページ設定] ダイアログ ボックスを表示します。