• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:別ファイルのデータを使うには)

別ファイルのデータを使う方法と新しいシートに表示する方法

このQ&Aのポイント
  • 質問者は別のファイルのデータを利用する方法と、結果を新しいシートに表示する方法を知りたいとしています。
  • 質問者はExcelのマクロを使用しているため、AdvancedFilter関数を使用してデータの抽出を行っています。
  • また、質問者はEXCEL01のファイルを開いていなくても動作するようにする方法を知りたいとしています。

質問者が選んだベストアンサー

  • ベストアンサー
  • TTak
  • ベストアンサー率52% (206/389)
回答No.1

EXCEL01のファイルに検索条件があるようですので、これを開かずに検索条件を得ることはできません。 このような場合、マクロでは、Application.ScreenUpdating = False を入れて、見かけ上開いていないようにコーディングします。 ファイル"EXCEL01.EXL"を開く部分ですが、マクロを記述しているファイルと、"EXCEL01.EXL"が、同じフォルダにある場合は下記のマクロ例になります。 違うフォルダの場合は、 Workbooks.Open Filename:="EXCEL01.EXLまでのパス\EXCEL01.EXL" と変更してください。 Sub Macro1() Application.ScreenUpdating = False Workbooks.Open Filename:=ThisWorkbook.Path & "\EXCEL01.EXL" ThisWorkbook.Activate Range("A:E").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Workbooks("EXCEL01.EXL").Sheets("EXCEL01").Columns("A:A"), CopyToRange:= _ Columns("K:O"), Unique:=True Workbooks("EXCEL01.EXL").Close False Application.ScreenUpdating = True Activesheet.Copy Columns("A:J").Delete Shift:=xlToLeft End Sub 結果を新しいシートを作成しそちらに表示するには、いくつか方法がありますが、この例では Sheets("EXCEL01").Copy Columns("A:J").Delete Shift:=xlToLeft のように、新しいブックにシートごとコピーして、"A~J"列を削除しています。 マクロ例実行の場合は、作業を戻すことができませんので、バックアップをとってから実行してください。

hetox2
質問者

お礼

回答ありがとうございます。もう一つ教えてください。 EXCEL1のA列のデータをEXCEL2のA列に貼り付けることはEXCEL1を開かなければできませんか?

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • TTak
  • ベストアンサー率52% (206/389)
回答No.2

> EXCEL1のA列のデータをEXCEL2のA列に貼り付けることはEXCEL1を開かなければできませんか? 同一ファイルのシート間であれば、シートを表示せずに、データを参照することは可能です。 ファイル間のデータ参照は、基本的にファイルを開かなければできません。 ADOや外部データ取り込みなどは、ファイルを開かずにデータ参照できますが、この方法はデータベースソフト(SQL)に対しては使いますが、EXCELファイルを参照することはあまりやらないように思います。

hetox2
質問者

お礼

なるほど。ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A