【本日のミッション】
データが続いて入力されていない表を、Excel VBAで一気に選択せよ。(複数行コード)
ミッションの概要
先日、データの入っている表を一括で選択する方法1(Excel VBA)にて、一括選択できなかったこちらの表。
こういう表を選択する方法を考えます。
実業務で出てくる表は、縦の行数、横の列数が固定されている場合って少ないんですよね。
データは、どんどん増えますし、ちょっと業務の内容が変わると項目も増減しますよね。
なので、処理時に最終行番号と最終列番号を取得し、表を選択します。
ファイルの準備とプロシージャ
このシートをアクティブにした状態で、Alt+F11でVsual Basic Editerを起動します。
[挿入]-[標準モジュール]で新規モジュールを作成し、下記の通りコードを記入します。
Sub 表を一括選択2()
'【変数】
Dim e_row As Long '最終行
Dim e_col As Long '最終列
'■変数セット
'セルB1048576からCtrl+↑の行番号を変数「e_row」へセット
e_row = Cells(Rows.Count, 2).End(xlUp).Row
'セルXFD3からCtrl+←の列番号を変数「e_col」へセット
e_col = Cells(3, Columns.Count).End(xlToLeft).Column
'■表を選択
Range(Range("B3"), Cells(e_row, e_col)).Select
End Sub
記入したプロシージャのどこかにカーソルを置いてF5キーをクリックすると、この通り。表がきちんと選択できました。
最終行・最終列の取得
最終行・最終列の取得には、「Endプロパティ」を使用します。
Rangeオブジェクト.End(方向)
方向 | 内容 | キーボード操作 |
xlUp | 上方向 | Ctrl+↑ |
xlDown | 下方向 | Ctrl+↓ |
xlToLeft | 左方向 | Ctrl+← |
xlToRight | 右方法 | Ctrl+→ |
e_row =Cells(Rows.Count, 2).End(xlUp).Row
Cells(Rows.Count, 2)→「セルB1048576」のことです。
「セルB1048576」からCtrl+↑をすると「セルB13」を選択しますよね。
その「セルB13」の行番号「13」を変数e_rowに入れています。
e_col = Cells(3, Columns.Count).End(xlToLeft).Column
Cells(3, Columns.Count)→セル「XFD3」のことです。
「XFD3」からCtrl+←をすると「セルE3」を選択しますよね。
その「セルE3」の列番号「5」を変数e_colに入れています。
列番号「5」はA→B→C→D→E 5番目の列ということです。
表の最終セルの指定
これらのe_rowとe_colを使って
Cells(e_row, e_col)
とすることで、「セルE13」を指定することができます。
Range(Range(“B3”), Cells(e_row, e_col)).Select
あとは表の左上の「セルB3」から表の右下の「セルE13」で表を選択することができます。
参照
「数字が文字列として保存されています。」を一括で数字に変換
データ範囲が増減しても参照先が自動で変動する「名前の管理」の設定(Excel)
連動するドロップダウンリストを名前の管理・入力規制・OFFSETを使って「リストが表示されない」を解決(Excel)
Excel 複数セル内の改行(Alt+Enter)を一括で解除する方法
Excel関数を使って 縦の表に連動した(リンクした)横の表を一括で作成せよ
ワイルドカードとは。使い方いろいろ。(Excel)
Excelの改ページの点線を消す方法
Excelの背景にある薄グレーの枠線(罫線)を消す(非表示)方法
非表示になってしまった列を表示させる方法
ファイルを開くと空の画面も同時に開くのを解決(Excel)
図 画像 グラフ ボタン などのオブジェクトが消えてしまった時の表示方法(Excel)
大量の画像やグラフ等のオブジェクトで画面表示が遅いのを解決(Excel)
保護されたシートに対して、このコマンドは使用できません。テーマが変えられない現象を解決(Excel)
離れた複数列をまとめて列番号(数字)で選択する方法(Excel VBA)
Excel VBA で選択した複数のセルにデータ・数式を(Ctrl+Enter のように)一気に入力する方法