Excel2000VBA 選択セルから入力の有る最終行を選択する実験 [Excel2000 VBA独習]
Excel2000VBA 選択セルから入力の有る最終行を選択
入力の有る最終行を 調べるには Range("A" & Rows.count)End(slUp).Row のようにするが、列をアルファベットにしなえらばならない。
そこで、Selection.Column で調べた列番号(数字)アルファベットに変換する方法を検索して調べたら下記のようにすると変換できる。(但しA-Zまで)Excel のAA-IVに変換は出来ない。
参考サイト ttp://home.kanto-gakuin.ac.jp/~ahero/excel/vba/cell/cellActive.shtml
AA-IV列に対応できないが、一応作ってみた。
Sub 選択列の最終行まで選択()
'選択セル列の入力ある最終行まで選択する
'データ途中に空白があってもOK
'セル番号の数値からアルファベットへの変換 (A-Z列まで)
'ttp://home.kanto-gakuin.ac.jp/~ahero/excel/vba/cell/cellActive.shtml
Dim end_row As Long '入力のある最終行番号
'
'end_row=Range("A" & Rows.count)End(slUp).Row
'列番号をアルファベットに変換 Chr(Asc("A") - 1 + ActiveCell.Column)
'選択されているセルの最終行 65536行から上方向調べ最初見つかったセル行番号
end_row = Range(Chr(Asc("A") - 1 + Selection.Column) & Rows.Count).End(xlUp).Row
'範囲選択
Range(Cells(Selection.Row, Selection.Column), Cells(end_row, Selection.Column)).Select
End Sub
------------------------------------------
以上の様な間抜けな事をしたので、もっとまともなマクロを作った。
Sub 選択セル列の最終行まで選択()
Range(Selection(1), Cells(Rows.Count, Selection.Column).End(xlUp)).Select
End Sub
------------------------------------------
左上(selection(1)の入力の有る最終行を基準に複数列を選択
B10:C10を選択しマクロ実行画面
完成
Sub 選択セル列の最終行まで選択()
Range(Selection(1), Cells(Rows.Count, Selection.Column).End(xlUp).Offset(0, Selection.Columns.Count-1)).Select
End Sub
追記
Ctrl +Shift + ↓で範囲選択するのと、どこが違うか?
Ctrl +Shift + ↓ では、空白セルの手前までしか選択できないが、上のマクロでは空白が途中にあっても入力のある最終行まで選択できる。
資料
Ctrl +Shift + ↓の動作をマクロで記録すると Range(Selection, Selection.End(xlDown)).Select
コメント 0