SSブログ

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列に対応できないが、一応作ってみた。

 excel_select_1.png

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を選択しマクロ実行画面

excel_select_2.png

 完成

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

 

 

 


タグ:Excel2000 VBA
nice!(0)  コメント(0)  トラックバック(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。