![Excel テーブルのインスタンス化](https://rvso.com/image/1585760/Excel%20%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E5%8C%96.png)
他のタスクのソースとして使用したい Excel テーブルがあります。このテーブルには、私の場合は名前と ID のリストと、その他のデータが含まれています。このテーブルは徐々に大きくなっており、すべてがそのまま残っています。このオブジェクトを別のワークブックでインスタンス化できれば最高です。VBA は使用できますが、最近はそれに飛び込むのをためらっています。もっとエレガントな代替案はありますか?
答え1
インスタンス化によって、テーブルを外部のブックにリンクするだけであれば、Excel のネイティブ データ ツールを使用すると簡単です。
- データをクリック
- データを取得
- ファイルから
- ワークブックから
- テーブルを含むソースブックを選択します
これにより、データ インポート インターフェイスが表示されます。ここから、ワークブック内のすべてのオブジェクトを確認できます。インポートするテーブル オブジェクトを選択します。[ロード] をクリックします。
これで接続されたクエリになりました。 を押すData > Refresh All
と、テーブルから最新のデータが取得されます。このようにして、テーブルはリンクされます。新しいワークブックで作業を行う前に、コピーを更新する必要があります。
答え2
必要なのは、リンクされた参照を呼び出すことです。
リンク参照を使用する 2 つの方法 (例はテーブル中心):
リンクされた参照を手動で入力します:
'workbook file name.xlsx'!Table_Name[#All]
- ファイル名にスペースまたは特殊文字が含まれている場合は、一重引用符が必要です。
- もっとテーブル演算子からMS: Excel テーブルで構造化参照を使用するページ。
ソース範囲を選択します:
- ソース ブックを開きます (それを参照する数式を作成する前に)。
- 数式を作成し、リンクされた参照が必要なポイントで、
- [表示] タブの [ウィンドウ] グループで、[ウィンドウの切り替え] をクリックします。
- ソース ワークブックを選択し、シート タブに移動します。
- 参照範囲セルを選択します。
- 数式を完成させる作業に戻ります。
表全体を表示するには:
- テーブルのインスタンスが必要な場合、
- 表を収めるのに十分な大きさのセル範囲を選択します。
- テーブルが大きくなる可能性がある場合は、この増大に対応できるように列や行を追加します。
IFERROR(<formula>,"")
非表示にするには追加します#N/A
。- ソース テーブルが割り当てられたスペースを超えたかどうかを示す追加のガードを追加します。
- 数式バーに入力する
='Table Workbook Name.xlsx'!Table_Name[#All]
か、入力して=
から、上記の方法 1 を使用してテーブル全体を選択します。 - これはCSE式なので、次のように使用しますCtrl- Shift-Enter