WordBasic と Visual Basic の概念上の違い

Visual Basic for Applications (VBA) と WordBasic の主な違いは、WordBasic 言語が約 900 個のコマンドのフラット リストで構成されているのに対し、Visual Basic はオブジェクトの階層で構成され、それぞれが特定のメソッドとプロパティのセット (WordBasic のステートメントや関数と同様) を公開します。 ほとんどの WordBasic コマンドはいつでも実行できますが、Visual Basic では、特定の時点で使用可能なオブジェクトのメソッドとプロパティのみが公開されます。

オブジェクトは Visual Basic の基本的な構成要素です。Visual Basic で行うほとんどすべての操作には、オブジェクトの変更が含まれます。 文書、段落、フィールド、ブックマークなど、Word のすべての要素は、Visual Basic のオブジェクトによって表すことができます。 フラット リスト内のコマンドとは異なり、他のオブジェクトからのみアクセスできるオブジェクトがあります。 たとえば、 Font オブジェクトには、 StyleSelectionFind オブジェクトなど、さまざまなオブジェクトからアクセスできます。

この 2 種類のプログラミング言語の違いを、太字の書式を設定するプログラムの使用例で示します。 次の WordBasic 命令は、選択範囲に太字の書式を設定します。

Bold 1

次の Visual Basic コードは、選択範囲に太字の書式を設定します。

Selection.Font.Bold = True

Visual Basic には、Bold という名前のステートメントや関数はありません。 その代わりに、Bold という名前のプロパティがあります。 (プロパティは通常、サイズ、色、太字かどうかなど、オブジェクトの属性です)。 BoldFont オブジェクトのプロパティです。 同様に、Font、Font オブジェクトを返す Selection オブジェクトのプロパティです。 このようなオブジェクトの階層に従ってコードを作成すると、選択範囲に太字の書式を設定することができます。 Bold プロパティは、読み取り/書き込みブール型プロパティです。 つまり、 Bold プロパティを True または False (オンまたはオフ) に設定するか、現在の値を返すことができます。 次の WordBasic 命令は、選択範囲に太字の書式を適用するかどうかを示す値を返します。

x = Bold()

同様に、次の Visual Basic のコードでは、選択範囲の太字の書式の状態を取得できます。

x = Selection.Font.Bold

Visual Basic での考え方

Visual Basic でタスクを実行するには、適切なオブジェクトを決定する必要があります。 たとえば、[ フォント ] ダイアログ ボックスにある文字の書式設定を適用する場合は、 Font オブジェクトを使用します。 次に、変更する Font オブジェクトを含むオブジェクトを使用して、Application オブジェクトから Font オブジェクトへの Word オブジェクト階層を "ドリルダウン" する方法を決定する必要があります。 オブジェクトへのパス (たとえば) を決定したら、オブジェクト ブラウザー、ヘルプ、または Visual Basic Editor の自動リスト メンバーなどの機能を使用して、オブジェクトに適用できるプロパティとメソッドを決定します。 プロパティとメソッドを使用したオブジェクトへのドリルダウンの詳細については、「 オブジェクト、プロパティ、メソッドについて」を参照してください。

プロパティおよびメソッドは、しばしば、指定した Word のオブジェクトの階層に含まれる複数のオブジェクトに対して使用できます。 たとえば、次のコードは、文書全体に太字の書式を設定します。

ActiveDocument.Content.Bold = True

また、オブジェクト自体は、多くの場合、オブジェクト階層内の複数の場所に存在します。

Selection および Range オブジェクト

ほとんどの WordBasic コマンドは、選択範囲に変更を加えるものです。 たとえば、Bold コマンドは選択範囲に太字の書式を設定します。 InsertField コマンドはカーソル位置にフィールドを挿入します。 Visual Basic で選択範囲を操作する場合は、 Selection プロパティを使用して Selection オブジェクトを取得します。 選択範囲は文字列のブロックでも、現在のカーソル位置だけでもかまいません。

次の Visual Basic コードは、選択範囲の後に文字列および新しい段落を挿入します。

Selection.InsertAfter Text:="Hello World" 
Selection.InsertParagraphAfter

選択範囲を操作する方法のほかに、文書内の文字列の範囲を指定して、操作することもできます。 Range オブジェクトは、開始文字の位置と終了文字の位置を持つドキュメント内の連続した領域を参照します。 文書のブックマークと同じように、Range オブジェクトを使用して文書の特定の部分を識別できます。 ただし、ブックマークとは異なり、Range オブジェクトは、Select メソッドを使用して Range が選択されていない限り、ユーザーには表示されません。 Visual Basic を使用すると、選択範囲を変更しなくても、文書内の任意の位置に太字の書式を設定できます。 次の使用例では、作業中の文書の先頭の 10 文字に太字の書式を設定します。

ActiveDocument.Range(Start:=0, End:=10).Bold = True

次の使用例では、先頭の段落に太字の書式を設定します。

ActiveDocument.Paragraphs(1).Range.Bold = True

いずれの使用例でも、選択範囲を変更しないで、作業中の文書の書式を変更します。 Range オブジェクトの詳細については、「Range オブジェクトを使用する」を参照してください。

サポートとフィードバック

Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。