【本日のミッション】
既存の表形式のセル範囲をテーブルに変換せよ。(Excel VBA)
ミッションの概要
既存の表形式のセル範囲をテーブルに変換せよ、というのが今回のミッションです。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
プロシージャ
このシートをアクティブにした状態で、Alt+F11でVsual Basic Editerを起動します。
[挿入]-[標準モジュール]で新規モジュールを作成し、下記の通りコードを記入します。
Sub テーブル変換() '【変数】 Dim e_row As Long '最終行 Dim e_col As Long '最終列 '■変数セット '表の最終行を取得 e_row = Cells(Rows.Count, 1).End(xlUp).Row '表の最終列を取得 e_col = Cells(1, Columns.Count).End(xlToLeft).Column '■表をテーブルに変換 ActiveSheet.ListObjects.Add Source:=Range(Range("A1"), Cells(e_row, e_col)) End Sub
セル範囲をテーブルに変換
指定したセル範囲をテーブルに変換するには、ListObjectsコレクションのAddメソッドを使用します。
シート.ListObjects.Add Source:= セル範囲
今回は、アクティブシートのセルA1から最終列の最終行のセルまでの表を、テーブルに変換しています。
ActiveSheet.ListObjects.Add Source:=Range(Range("A1"), Cells(e_row, e_col))
最終行・最終列の取得
最終行・最終列の取得には、Endプロパティを使用します。
Rangeオブジェクト.End(方向)
方向 | 内容 | キーボード操作 |
xlUp | 上方向 | Ctrl+↑ |
xlDown | 下方向 | Ctrl+↓ |
xlToLeft | 左方向 | Ctrl+← |
xlToRight | 右方法 | Ctrl+→ |
e_row =Cells(Rows.Count, 1).End(xlUp).Row
Cells(Rows.Count, 1)→「セルA1048576」のことです。
「セルA1048576」から、Ctrl+↑をすると「セルA9」を選択しますよね。
その「セルA9」の行番号「9」を変数e_rowに入れています。
e_col = Cells(1, Columns.Count).End(xlToLeft).Column
Cells(1, Columns.Count)→セル「XFD1」のことです。
「XFD1」からCtrl+←をすると「セルC1」を選択しますよね。
その「セルC1」の列番号「3」を変数e_colに入れています。
列番号「3」はA→B→C 3番目の列ということです。
参照:データの入っている表を一括で選択する方法2(Excel VBA)
参照
系列が1つのグラフを自動大量連続作成(Excel ーBA)
「実行時エラー 1004」を出さずに、ワークシート内のグラフを「グラフ 元」以外全て削除(Excel VBA)
グラフの参照先を変えると勝手にグラフの色が変わる現象を解決せよ
系列が複数あるグラフを自動大量連続作成(Excel VBA)
n行毎の改ページ設定 「実行時エラー1004 RangeクラスのPageBreakプロパティを設定できません」の原因(Excel VBA)
参照データ数が異なる・参照先が変動する月別グラフを自動大量連続作成(Excel VBA)
複数系列・参照データ数が異なる・参照先が変動する月別グラフを自動大量連続作成(Excel VBA)
エクセル 既存の表形式のセル範囲をテーブルに変換せよ。(Excel VBA)