Home » ワードマクロ・Word VBAの使い方 » Word VBAで2つのオブジェクトが同じか調べるには-Is演算子

Word VBAで2つのオブジェクトが同じか調べるには-Is演算子

動作検証バージョン:64bit Windows 10 Pro + 32bit Word(バージョン2108 ビルド14326.20348 Microsoft Store)

「word vba オブジェクト 比較」
といった検索キーワードでアクセスがありました。

Word VBAで、2つのオブジェクトが同じかどうかを判定するには、どのようなコードを書けばいいのか、探していた方による検索でしょうか。

ここでは基本をお伝えしておきます。

Documentオブジェクトを比較するサンプル

VBAのIs演算子を使うと、2つのオブジェクトが同じかどうかを比較・判定できます。

Sub Documentオブジェクトが同じか調べる()
 Dim doc_active As Document
 Set doc_active = ActiveDocument

 Dim doc_this As Document
 Set doc_this = ThisDocument

 MsgBox doc_active Is doc_this
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演算子

「ワードマクロ・Word VBAの使い方」の記事一覧

検索


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

.