Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObjectの列名を変更する-ListColumn.Name

ListObjectの列名を変更する-ListColumn.Name

対象:Excel2007, Excel2010, Excel2013

ListObjectオブジェクト・テーブルの列名を取得するVBAのコードをご紹介しています。

実務では、VBAから列名を変更したい、ということもあるでしょう。

[スポンサードリンク]

列名を設定するサンプルマクロ

以下のようなマクロで、アクティブなシート上の、1つ目の、1列目の名前を「GivenName」に設定することができます。
Sub 列名を設定する()
 ActiveSheet.ListObjects(1).ListColumns(1).Name = "GivenName"
End Sub

同じ列名の場合でも実行時エラーが発生しない

Excelマクロでは、同じ名前が存在しているときには実行時エラーが発生するということが、よくあります。
代表例が、シート名の変更マクロです。

既に存在しているシートと同じ名前を設定しようとすると、
「シートの名前を他のシート、Visual Basicで参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。」
という実行時エラーが発生します。

これに慣れている方だと、テーブルの列名変更でも同じような実行時エラーが発生するのだろうと考えるかもしれませんが、違います。
テーブルの列名の場合は、既に同じ名前の列名が存在していてもエラーは発生しません。

既に存在している列名を、指定しようとすると、エラーも何も発生することなく、列名の変更も行われることなく、マクロがそのまま終わってしまいます。

先のマクロを実行後に、コードを
  ActiveSheet.ListObjects(1).ListColumns(2).Name = "GivenName"
のように少しだけ変更して実行して、エラーも発生せず、2列目の列名も変更されないことをご確認ください。

列名の変更を正しく行うには、同じ名前の列が存在していないかを事前にチェックしてから、列名変更処理を行う必要がありそうです。

最終更新日時:2019-10-28 11:02

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » ListObjectオブジェクト » ListObjectの列名を変更する-ListColumn.Name

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

検索


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