• ベストアンサー

エクセル 別ファイルの情報を取り込むマクロ

エクセル初心者です。上級者の方には簡単だと思うのですが 私にはどうやってもできないので教えて下さい。 Aというエクセルソフトがあります。これにデスクトップに一時保管したエクセルのファイルを開き(名前不特定)、シートの全体をコピーしたものをAのシート1に貼り付けをする方法はありますか? この後Aで貼り付けた情報を加工していくことになります。 今はいちいち手作業でコピー&ペーストしてますが 他の人も使うことになったので、マクロで処理できれば・・と思っています。よろしくお願い致します。

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

  • ベストアンサー
回答No.1

こんなのはどでしょうか? デスクトップ上のファイルを選択させて、Sheet1にコピーします。 選択されたブックのどのシートをコピーするのかわからないので、Sheet1をコピーします。 開いた時に最初に表示するシートをコピーする場合は、 wb.Sheets("Sheet1").Cells.Copy・・・ の行を削除して、 wb.ActiveSheet.Cells.Copy・・・ の行を有効にしてください。 Sub sample() Dim OpenFileName As Variant Dim wb As Workbook 'カレントパスをデスクトップにする ChDir CreateObject("WScript.Shell").SpecialFolders("desktop") 'ファイルを開くダイアログ OpenFileName = Application.GetOpenFilename(FileFilter:="Microsoft Excelブック,*.xls") 'キャンセルが選ばれた? If OpenFileName = False Then '終了 Exit Sub End If 'このブックのSheet1をクリア ThisWorkbook.Sheets("Sheet1").Cells.Clear 'ワークブックを開く Set wb = Workbooks.Open(OpenFileName) '選択されたブックの特定のシート(たとえばSheet1)をコピーする場合 wb.Sheets("Sheet1").Cells.Copy Destination:=ThisWorkbook.Sheets("Sheet1").Cells(1, 1) '選択されたブックの最初に表示するシートをコピーする場合 'wb.ActiveSheet.Cells.Copy Destination:=ThisWorkbook.Sheets("Sheet1").Cells(1, 1) '閉じる wb.Close End Sub

richio
質問者

お礼

ありがとうございました。完璧です!! すっごく助かりました。