問題タブ [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.
excel - VBA で使用する Excel テーブル列の「CodeName」
行番号と列名で Excel テーブルから値を取得できるようにしたいと考えています (コードの読みやすさと堅牢性のため)。
数式では、列ヘッダー テキストで構造化参照を使用して、次のようにテーブルから値を取得できます。
ユーザーが列の名前を変更すると、式内のすべての構造化参照が自動的に更新されるため、これは式に対して堅牢です。
ただし、VBA コードの場合はそうではありません。
Worksheet.CodeName
ワークシートの場合、ユーザーが表示されているシート名を変更しても同じままになる VBA コードで使用するために定義することができます。Excel テーブルの AFAICS には、そのようなプロパティはありません。
私が現在持っている最良のアイデアは、テーブル ヘッダーを 1 セルの名前付き範囲にすることです。次に、次のように VBA のテーブルから値を取得できます。
ただし、名前付き範囲がテーブルから切断されているため、これは気になります。たとえば、シート上のテーブルを再配置すると、範囲は古い場所に残ります。
より良いオプションはありますか?「より良い」とは、具体的には次のことを意味します。
- テーブル内の列の名前変更および/または再配置を維持し、少なくともシート内でテーブルを移動します