ブルースはワークブックで定義された名前付き範囲(アカウント)を持っており、マクロ内からその名前付き範囲にアクセスして使用する方法を考えています。 RangeオブジェクトまたはNamesコレクションのいずれかを使用して、範囲にアクセスする方法はいくつかあります。

Rangeオブジェクトを使用して名前付き範囲にアクセスするには、オブジェクトのパラメーターとして範囲の名前を指定するだけです。この名前は、Excel内で定義したものと同じです。たとえば、次の行を使用して、範囲全体の内部の色を変更できます。

Worksheets("Sheet1").Range("Account").Interior.Color = vbYellow

Rangeオブジェクトは、特定のワークシート(この場合はSheet1)に関連して使用されることに注意してください。次の方法で、VBA内で範囲オブジェクトを定義し、それを名前付き範囲と等しくなるように割り当てることもできます。

Set rng = Worksheets("Sheet1").Range("Account")

名前付き範囲を使用するもう1つの方法は、Namesコレクションを使用することです。次の行は、範囲の内部色を再び黄色に設定します:

Workbooks("Book1.xls").Names("Account").RefersToRange.Interior.Color = vbYellow

Namesコレクションはブック全体に関連しているため、このアクセス方法を使用する場合、名前付き範囲がどのワークシートに関連付けられているかを知る必要はありません。 VBAで範囲オブジェクトを定義し、名前付き範囲と同じになるように割り当てることもできます。

Set rng = Workbooks("Book1.xls").Names("Account").RefersToRange

名前付き範囲にアクセスするNames収集方法は、ワークブックの異なるワークシートで同じ名前付き範囲が定義されていない場合にのみ実行可能であることを知っておく必要があります。その場合は、Rangeオブジェクトメソッドを使用する必要があります。これには、参照で特定のワークシート名を使用する必要があります。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(3106)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。