【用語集に記載の内容について】

用語集に記載されているメソッドや関数の引数は、VBAエキスパート試験の試験範囲に基づいており、すべての引数を網羅しておりません。 また、書式は公式テキストの記載に準じています。
試験範囲外の引数や詳細については、ヘルプ機能やオブジェクトブラウザーをご参照ください。

【コードをコピーして実行する場合の注意】

文字コードの関係上、半角の「¥」は「/」で表示されるため、当サイトでは全角の「¥」で記載しています。当サイトのコードをコピーして実行する場合は、全角の「¥」を半角の「¥」に変換してください。

セルのEndプロパティ

名称セルのEndプロパティ
説明
ワークシート上でEndモード([Ctrl]+矢印キーを押す)を実行したときに移動するセルを表します。
書式
セル.End(移動する方向)

移動する方向:方向を表す定数を指定

<指定可能な定数>
xlUp:上
xlDown:下
xlToLeft:左
xlToRight:右
コード例①
【上方向([Ctrl]+[↑]キー)】
Sub Macro1()
    Cells(Rows.Count, 1).End(xlUp).Value = 10
End Sub

「Rows.Count」は、シート内の行の集合体であるRowsコレクションの行数をCountプロパティで取得しています。

シートの最終行番号が1048576の場合、
「Cells(Rows.Count, 1).End(xlUp).Value = 10」は、
「Range("A1048576").End(xlUp).Value = 10」となります。

Endプロパティに定数「xlUp」を指定しているので、セルA1048576で[Ctrl]+[↑]キーを押した時の移動先のセルを表します。

マクロを実行すると、セル範囲A1:A5に空白セルがない場合、セルA5に10が代入されます。

セル範囲A1:A5でセルA3が空白セルの場合でも、セルA5に10が代入されます。
コード例②
【左方向([Ctrl]+[←]キー)】
Sub Macro2()
    Cells(1, Columns.Count).End(xlToLeft).Value = 10
End Sub

「Columns.Count」は、シート内の列の集合体であるColumnsコレクションの列数をCountプロパティで取得しています。

シートの最終列がXFDの場合、
「Cells(1, Columns.Count).End(xlToLeft).Value = 10」は、
「Range("XFD1").End(xlToLeft).Value = 10」となります。

Endプロパティに定数「xlToLeft」を指定しているので、セルXFD1で[Ctrl]+[←]キーを押した時の移動先のセルを表します。

マクロを実行すると、セル範囲A1:E1に空白セルがない場合、セルE1に10が代入されます。

セル範囲A1:E1でセルC1が空白セルの場合でも、セルE1に10が代入されます。
コード例③
【下方向([Ctrl]+[↓]キー)】
Sub Macro1()
    Range("A1").End(xlDown).Value = 10
End Sub

Endプロパティに定数「xlDown」を指定しているので、セルA1で[Ctrl]+[↓]を押した時の移動先のセルを表します。

マクロを実行すると、セル範囲A1:A5に空白セルがない場合、セルA5に10が代入されます。

セル範囲A1:A5でA3が空白セルの場合、セルA2に10が代入されます。
コード例④
【右方向([Ctrl]+[→]キー)】
Sub Macro1()
    Range("A1").End(xlToRight).Value = 10
End Sub

Endプロパティに定数「xlToRight」を指定しているので、セルA1で[Ctrl]+[→]キーを押した時の移動先のセルを表します。

マクロを実行すると、セル範囲A1:E1に空白セルがない場合、セルE1に10が代入されます。

セル範囲A1:E1でセルC1が空白セルの場合、セルB1に10が代入されます。
カテゴリベーシック