Excel VBAメモ テーブルの挿入で作ったテーブルを名前で見つけて内容を取得してみる
野暮用で。
ポイントはこんな感じ。
- テーブルに名前をつけておく
- SheetオブジェクトのテーブルコレクションListObjectsからテーブルListObjectを取得する
- テーブルの名前はNameプロパティを参照する
- テーブルのセルの値はListObjectのRangeに行番号と列番号を指定することで取得できる
作ったシートはこんな感じ。
シートは1つでテーブルはMainTableって名前にした。
んで、コードはこんな感じ。
テーブルを検索するシートは表示しているシート"ActiveSheet"ってことにしてある。
Private Sub Method() ' 変数を定義する Dim objListObject As ListObject Dim objColumn As ListColumn Dim objRow As ListRow Dim nHeader As Integer Dim nRow As Integer Dim nColumn As Integer ' 変数を初期化する Set objListObject = Nothing Set objColumn = Nothing Set objRow = Nothing strName = "MainTable" nHeader = 0 nRow = 0 nColumn = 0 ' ' テーブルの値をイミディエイトウィンドウに表示する ' On Error GoTo MethodEnd ' 途中でループを抜けたいのでDo...Loop Whileを使う Do ' アクティブシートの中にあるテーブルを名前で検索する For Each objListObject In ActiveSheet.ListObjects ' 取得したいテーブルの名前と一致するかチェックする If objListObject.Name = strName Then ' 目的のテーブルなので検索を終了する Exit Do End If Next Loop While False ' 見出しの行番号を取得する nHeader = objListObject.HeaderRowRange.Row ' テーブルの内容をイミディエイトウィンドウに表示する For Each objRow In objListObject.ListRows ' 見出し行のときは処理をスキップしたいのでDo...Loop Whileを使う Do ' 処理中の行番号を取得する nRow = objRow.Index ' 見出し行かチェックする If nRow = nHeader Then ' 見出し行は表示したくないので次の行へ処理をスキップする Exit Do End If ' 値をイミディエイト出力する For Each objColumn In objListObject.ListColumns ' 処理中の列番号を取得する nColumn = objColumn.Index ' イミディエイトウィンドウに行列番号とセルの値を表示する Debug.Print "[" & nRow & "," & nColumn & "]" & objListObject.Range(nRow, nColumn) Next Loop While False Next MethodEnd: ' オブジェクトを開放する If Not objColumn Is Nothing Then Set objColumn = Nothing End If If Not objRow Is Nothing Then Set objRow = Nothing End If If Not objListObject Is Nothing Then Set objListObject = Nothing End If End Sub
で、実行してみるとこんな感じ。
“[行番号,列番号]セルの値"ってなことで表示しとる。
[2,1]1 [2,2]Apple [2,3]100 [3,1]2 [3,2]Lemon [3,3]80 [4,1]3 [4,2]Orange [4,3]120 [5,1]4 [5,2]Grape [5,3]200
んまま、明日への自分へのメモってことで。
VBAExcel,HeaderRowRange,ListColumn,ListColumns,ListObject,ListObjects,ListRow,ListRows,Microsoft,Name,Office,Range,Sheet,VBA,Visual Basic,イミディエイトウィンドウ,エクセル,コレクション,シート,テーブル,テーブルの挿入,プログラミング,マイクロソフト,マクロ,列番号,名前,検索,行番号
関連記事
![](https://i0.wp.com/www.tetsuyanbo.net/wordpress/wp-content/uploads/hqdefault199.jpg?resize=200%2C200&ssl=1)
テンションがあがる唄 Sara Bareilles / Brave
Windows 8のCMの唄。 なんか、妙に耳に残るフレーズ。 もちょい、じっく ...
![](https://i0.wp.com/www.tetsuyanbo.net/wordpress/wp-content/uploads/Visual-Studio.jpg?resize=200%2C200&ssl=1)
C#メモ Visual Studio for macでMessageBoxを表示してみる
なんと!Visual Studio for mac 2019でSystem.Wi ...
![](https://i0.wp.com/www.tetsuyanbo.net/wordpress/wp-content/uploads/16094_01.png?resize=200%2C200&ssl=1)
MySpaceのUIがいつの間にか新しくなってた
My SpaceのUIがリニューアルされてた。 たまぁぁぁぁぁぁぁにぃ使うんだけ ...
![](https://i0.wp.com/www.tetsuyanbo.net/wordpress/wp-content/uploads/Visual-Studio.jpg?resize=200%2C200&ssl=1)
C#メモ CSV形式のテキストファイルの内容をDataTableに直接格納してみる
これまた野暮用。 CSV形式のテキストファイルの内容をサクッとDataTable ...
![](https://i0.wp.com/www.tetsuyanbo.net/wordpress/wp-content/uploads/Visual-Studio.jpg?resize=200%2C200&ssl=1)
PowerShellメモ C#のコードをPowerShellのスクリプトの中で実行してみる
VBSではできなかった?最初はPowerShellもできなかったみたいだけど、P ...
ディスカッション
コメント一覧
まだ、コメントがありません