Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルに列を追加するExcelマクロ

ListObject・テーブルに列を追加するExcelマクロ

対象:Excel2007, Excel2010, Excel2013

「エクセルvba リストオブジェクト列数変更」
という検索キーワードを元に、ListObjectオブジェクト・テーブルの列を削除するVBA(Visual Basic for Applications)のコードをご紹介しました。

もう一つの「列数変更」である、列の追加・挿入をご紹介しましょう。

[スポンサードリンク]

テーブルの右端に列を追加するサンプルマクロ

以下のようなマクロで、アクティブなシートの一つ目のテーブルの、右端・最後に列が追加されます。
Sub テーブルに列を追加する()
 ActiveSheet.ListObjects(1).ListColumns.Add
End Sub

ListColumnsコレクションオブジェクトのAddメソッドで列が追加されます。

ちなみに削除は、ListColumnオブジェクトのDeleteメソッドでした。

オブジェクト式の文法がしっかり理解できていないと、Addの場合はコレクションオブジェクトで、Deleteの場合は単一オブジェクトであるところが、間違えてしまいがちなところかもしれません。

挿入位置を指定してテーブルに列を追加するサンプルマクロ

列を追加する位置を指定するなら、以下のようなマクロです。
Sub テーブルに列を追加する_位置指定()
 ActiveSheet.ListObjects(1).ListColumns.Add Position:=1
End Sub

上記のようなマクロで、アクティブなシートの一つ目のテーブルの、左端・先頭に列が追加されます。
挿入位置は、ListColumns.Addメソッドの引数・Positionを指定すればOKです。

標準引数を使った、
  ActiveSheet.ListObjects(1).ListColumns.Add 1
というコードでも、まあOKですが、数字だけが引数に指定されると、挿入する列の数と誤解する方もいらっしゃるはずなので、ListColumns.Addメソッドの引数は一つだけですが、上記のように名前付き引数にしておくほうが、良さそうに思えます。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObject・テーブルに列を追加するExcelマクロ

「ListObjectオブジェクト」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.