問題タブ [excel-tables]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
427 参照

excel - VBA で使用する Excel テーブル列の「CodeName」

行番号と列名で Excel テーブルから値を取得できるようにしたいと考えています (コードの読みやすさと堅牢性のため)。

数式では、列ヘッダー テキストで構造化参照を使用して、次のようにテーブルから値を取得できます。

ユーザーが列の名前を変更すると、式内のすべての構造化参照が自動的に更新されるため、これは式に対して堅牢です。

ただし、VBA コードの場合はそうではありません。

Worksheet.CodeNameワークシートの場合、ユーザーが表示されているシート名を変更しても同じままになる VBA コードで使用するために定義することができます。Excel テーブルの AFAICS には、そのようなプロパティはありません。


私が現在持っている最良のアイデアは、テーブル ヘッダーを 1 セルの名前付き範囲にすることです。次に、次のように VBA のテーブルから値を取得できます。

ただし、名前付き範囲がテーブルから切断されているため、これは気になります。たとえば、シート上のテーブルを再配置すると、範囲は古い場所に残ります。

より良いオプションはありますか?「より良い」とは、具体的には次のことを意味します。

  • テーブル内の列の名前変更および/または再配置を維持し、少なくともシート内でテーブルを移動します