「word vba オブジェクト 比較」
といった検索キーワードでアクセスがありました。
Word VBAで、2つのオブジェクトが同じかどうかを判定するには、どのようなコードを書けばいいのか、探していた方による検索でしょうか。
ここでは基本をお伝えしておきます。
Documentオブジェクトを比較するサンプル
VBAのIs演算子を使うと、2つのオブジェクトが同じかどうかを比較・判定できます。
Dim doc_active As Document
Set doc_active = ActiveDocument
Dim doc_this As Document
Set doc_this = ThisDocument
End Sub
上記のSubプロシージャを含むDocumentとアクティブなDocumentが同じならTrue、そうでなければFalseがメッセージボックスに表示されます。
サンプルで行っている処理について
まず、拙著『Excel VBAユーザーのためのWord VBA入門(1)』の「2-1. ActiveDocumentでアクティブ文書を取得する」で解説している、ActiveDocumentプロパティで取得できるDocumentオブジェクトをオブジェクト変数doc_activeに代入しています。
Set doc_active = ActiveDocument
つづいて、ThisDocumentオブジェクトをオブジェクト変数doc_thisに代入しています。
Set doc_this = ThisDocument
2つのオブジェクト変数を用意しておいてから、VBAのIs演算子で比較した結果をMsgBoxで表示しています。
MsgBox doc_active Is doc_this
VBAでオブジェクトを比較するのに使うのはIs演算子です。Excel VBAでも、Access VBAでも、Word VBAでも。
Is演算子で比較できないケースはWord VBAでもある
なお、オブジェクトの比較はIs演算子で行うのがVBAの基本ですが、どのオブジェクトでも必ずIs演算子で比較できるとは思い込まないでください。
例えば、Excel VBAでRangeオブジェクトはIs演算子を使って比較できません。Word VBAでも同様のケースはあり得ます。
最終更新日時:2022-01-08 04:06
Home » ワードマクロ・Word VBAの使い方 » Word VBAで2つのオブジェクトが同じか調べるには-Is演算子