Excelマクロを開発している場合、自分が配置されているセルに関連するセルをどのように選択できるか疑問に思うかもしれません。たとえば、Excelを使用しているときにホームキーを押すと、現在の行の左側にあるセルが選択されます。残念ながら、マクロレコーダを使用してこれを記録しても、実際のアクションではなくアクションの宛先が記録されるため、この状況では役に立ちません。たとえば、[ホーム]を押して、ワークシートの4行目にいる場合、Excelはホームアクションを記録せず、代わりに次のように宛先を記録します。

Range("A4").Select

これは、常にセルA4に移動したい場合は素晴らしいですが、現在の行の最初のセルに移動したい場合はひどいです。

VBAの多くのタスクと同様に、このジレンマの解決策に取り組む方法はいくつかあります。最初の方法は、実際には、上記のように、マクロレコーダーが返すもののバリエーションです。次のように、現在の行を表すように行指定子を変更するだけです。

Range("A" & (ActiveCell.Row)).Select

VBAは現在の行が何であるかを把握し、「A」と一緒に叩きます

指定子であり、Rangeメソッドで機能するセル参照を考え出します。

使用できるもう1つの手法は、次のように、Cellsプロパティを機能させることです。

Cells(Application.ActiveCell.Row, 1).Select

もちろん、このアプローチは、現在の行の任意のセルを実際に選択するように変更できます。あなたがする必要があるのは、列の指定(上記の例では1)を目的の列を表す番号に変更することだけです。

別のアプローチ(同じ結果が得られます)は、次に示すように、RangeオブジェクトをCellsプロパティと組み合わせて使用​​することです。

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

Selection.Rowは、現在の選択の行番号を示します。 CellsメソッドのAddressプロパティは、特定のセルのアドレスをA $ 1 $形式で返します。次に、このアドレスがRangeオブジェクトのパラメーターとして使用され、実際のセルがSelectメソッドによって選択されます。

注:

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

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

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