Endプロパティとは?
Excel VBAには、シートやセルなどのオブジェクトを操作するためのプロパティが存在します。
その中でも、Endプロパティはセルの範囲を指定する際に便利なプロパティです。
このプロパティを使うことで、手動で範囲を指定する必要がなくなり、コードの記述が簡略化できます。
Endプロパティを使ったエクセルショートカット
Endプロパティを使うことで、セルの範囲を指定するショートカットを作ることができます。例えば、以下のようなコードを記述することで、現在選択されているセルから最後の行までを選択することができます。
1 |
Range(Selection, Selection.End(xlDown)).Select |
また、以下のようなコードを記述することで、現在選択されているセルから最後の列までを選択することができます。
1 |
Range(Selection, Selection.End(xlToRight)).Select |
これらのショートカットを使うことで、手動で範囲を指定する手間を省くことができます。
Endプロパティを使ったフィルターの自動化
Endプロパティを使うことで、フィルターの自動化にも役立てることができます。例えば、以下のようなコードを記述することで、現在選択されているセルから最後の行までをフィルターすることができます。
1 |
Range(Selection, Selection.End(xlDown)).AutoFilter |
このコードを実行することで、現在選択されているセルから最後の行までがフィルターの範囲となります。これにより、手動でフィルターを設定する手間を省くことができます。
まとめ
Excel VBAのEndプロパティは、セルの範囲を指定する際に便利なプロパティです。
このプロパティを使うことで、手動で範囲を指定する手間を省くことができ、エクセルショートカットの効率化やフィルターの自動化に役立てることができます。
Excel VBAを使って作業効率を上げたい方は、Endプロパティを積極的に活用してみることをおすすめします。
また、Endプロパティを使ったコードを記述する際には、選択されているセルがどこにあるかを意識する必要があります。
選択されているセルが予期せぬ場所にあると、意図した動作ができないことがあります。そのため、コードを記述する前に、選択されているセルが正しい位置にあるかを確認することが大切です。
また、Endプロパティは、範囲を指定する際に相対参照を使うことができるため、コードの再利用性が高いというメリットがあります。
一度作成したコードを他の箇所でも使い回すことができるため、作業効率の向上につながります。
サンプルコード
選択されたセルから指定された列までの合計を求める
1 2 3 4 5 6 7 |
Sub CalculateTotal() ' 選択されたセルから最後の列までの合計を求める Dim LastColumn As Long LastColumn = Selection.End(xlToRight).Column Selection.Resize(, LastColumn - Selection.Column + 1).Select Selection.Formula = "=SUM(" & Selection.Address & ")" End Sub |
このコードでは、Selection.End(xlToRight)を使って、選択されたセルから最後の列までの列番号を取得し、それを使って、Selection.Resizeを使って範囲を指定しています。
そして、Selection.Formulaを使って、セルにSUM関数を設定して、合計を求めています。このコードを実行することで、選択されたセルから最後の列までの合計を求めることができます。
選択されたセルから指定された列までの合計を求める
1 2 3 4 5 6 |
Sub CopyCells() ' 選択されたセルから指定されたセルまでのコピーを行う Dim LastCell As Range Set LastCell = Selection.End(xlDown).End(xlToRight) Range(Selection, LastCell).Copy End Sub |
このコードでは、Selection.End(xlDown).End(xlToRight)を使って、選択されたセルから最後の行かつ最後の列までのセルを取得し、それを使ってRange関数で範囲を指定しています。
そして、Range.Copyを使って、コピーを行っています。このコードを実行することで、選択されたセルから指定されたセルまでのコピーを行うことができます。
コメント