「エクセルvba リストオブジェクト列数変更」
という検索キーワードを元に、ListObjectオブジェクト・テーブルの列を削除するVBA(Visual Basic for Applications)のコードをご紹介しました。
もう一つの「列数変更」である、列の追加・挿入をご紹介しましょう。
テーブルの右端に列を追加するサンプルマクロ
以下のようなマクロで、アクティブなシートの一つ目のテーブルの、右端・最後に列が追加されます。ActiveSheet.ListObjects(1).ListColumns.Add
End Sub
ListColumnsコレクションオブジェクトのAddメソッドで列が追加されます。
ちなみに削除は、ListColumnオブジェクトのDeleteメソッドでした。
オブジェクト式の文法がしっかり理解できていないと、Addの場合はコレクションオブジェクトで、Deleteの場合は単一オブジェクトであるところが、間違えてしまいがちなところかもしれません。
挿入位置を指定してテーブルに列を追加するサンプルマクロ
列を追加する位置を指定するなら、以下のようなマクロです。ActiveSheet.ListObjects(1).ListColumns.Add Position:=1
End Sub
上記のようなマクロで、アクティブなシートの一つ目のテーブルの、左端・先頭に列が追加されます。
挿入位置は、ListColumns.Addメソッドの引数・Positionを指定すればOKです。
標準引数を使った、
ActiveSheet.ListObjects(1).ListColumns.Add 1
というコードでも、まあOKですが、数字だけが引数に指定されると、挿入する列の数と誤解する方もいらっしゃるはずなので、ListColumns.Addメソッドの引数は一つだけですが、上記のように名前付き引数にしておくほうが、良さそうに思えます。
- Newer:優先度が耳からの情報で得られ、割り切る部分が明らかに
- Older:文書の先頭にカーソルを移動するWordマクロ
Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルに列を追加するExcelマクロ