マクロでは、現在選択されているセルを基準にしてセルを選択すると便利な場合があります。たとえば、現在の行の最初の3つのセルを選択するとします。次のVBAコードを使用してこれを行うことができます:

Range(Cells(Selection.Row, 1), Cells(Selection.Row, 3)).Select

Cellsプロパティは、ワークシートの特定の行と列(個々のセル)を表すオブジェクトを返します。この使用法では、セルを2回使用して、特定の範囲のセルを決定します。最初のインスタンスは現在の行の最初のセルを返し、2番目のインスタンスは現在の行の3番目のセルを返します。したがって、範囲は現在の行の1番目から3番目のセルになります。

Cellsプロパティを使用して場所を指定する代わりに、Offsetプロパティを使用して同じタスクの多くを実行できます。次のコードについて考えてみます。

Range(ActiveCell.Offset(-3, 5), ActiveCell.Offset(0, 10)).Select

これは、ActiveCellオブジェクトのOffsetプロパティを使用して、現在選択されているセルを基準にした範囲を指定します。 Offsetプロパティは、オフセットの行と列を表す引数を取ります。負の値は、上(行の場合)と左(列の場合)を表します。正の値は下(行の場合)と右(列の場合)です。現在の行または列を表す値0を使用することもできます。

注:

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

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

このヒント(11402)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。