- ベストアンサー
複数のエクセルファイルを1つのエクセルファイルのシートにコピーする方法は?
- 複数のエクセルファイルを1つのエクセルファイルのシートにコピーする方法について教えてください。
- エクセルファイルZにおいて「マクロの記録」を起動し、【みかん】~【いちご】までの5シートを全データ削除します。
- 開いてあるフォルダ「データー」の中からエクセルファイルAを開き、シート【みかん】の全データをエクセルファイルZの【みかん】というシートに貼り付けます。同様に他のファイルのシートも行います。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
保存しないで閉じる、でなくて読み取り専用で開く、なら参考ページあります。 ファイルを選ぶ画面の開くボタンにオプションあります。 OPENの記述行のファイル名の後、「,READONLY:=TRUE」と書きます、試しにマクロを作って確認してみて下さい。 閉じるタイミングはAからZへ貼付けたらA選んで閉じていったんZ選んでB開く、感じです。
その他の回答 (3)
- layy
- ベストアンサー率23% (292/1222)
最初、Aブックが開いている状態から、マクロ保存したのではありませんか。BやCを開く時と違う記述です。 Zブック開いてマクロ実行すると、Aブック開いてコピー、Zブックに貼付け、Bブック開いてコピー、Zブックに貼付け、のように開くのもマクロでおこなう。 記述確認してみて下さい。
お礼
>最初、Aブックが開いている状態から、マクロ保存したのではありませんか。 >BやCを開く時と違う記述です。 申し訳ありません。 修正前の文を貼り付けました。 以下の文で行っています。 ありがとうございました。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 ' ' Sheets("みかん").Select Selection.ClearContents Sheets("りんご").Select Selection.ClearContents Sheets("バナナ").Select Selection.ClearContents Sheets("ぶどう").Select Selection.ClearContents Sheets("いちご").Select Selection.ClearContents Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\A.xls" Windows("A.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("みかん").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\B.xls" Windows("B.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("りんご").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\C.xls" Windows("C.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("バナナ").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\D.xls" Windows("D.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("ぶどう").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\E.xls" Windows("E.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("いちご").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select End Sub
補足
ありがとうございます。 とりあえず下に示した文で思ったように動くようになりました。 残る問題は、ファイルZが完成後、ファイルA-Eが開いたままになっている事です。 出来ればコピーが終わったらファイルA-Eは保存しないで閉じたいのですが うまく出来ません。 WEBで調べてサンプル分を加工して 最初に出てくる ActiveSheet.Paste という文のの下に Filename:="C:\Documents and Settings\※※※\My Documents\データー\A.xls" .Close SaveChanges:=Faise としましたがエラーでした。 -------------------------- Sub Macro2() Sheets("みかん").Select Selection.ClearContents Sheets("りんご").Select Selection.ClearContents Sheets("バナナ").Select Selection.ClearContents Sheets("ぶどう").Select Selection.ClearContents Sheets("いちご").Select Selection.ClearContents Workbooks.Open Windows("A.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("みかん").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\B.xls" Windows("B.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("りんご").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\C.xls" Windows("C.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("バナナ").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\D.xls" Windows("D.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("ぶどう").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\E.xls" Windows("E.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("いちご").Select Range("A1").Select ActiveSheet.Paste Sheets("変換").Select End Sub
- layy
- ベストアンサー率23% (292/1222)
貼付けたが値を消す操作あり か 貼付け値が空 か シート名がおかしくて実行時エラー か ほか要因 このままでは何とも言えません。 みかんへ貼付けし次のりんごを選択したとき保存してみる。みかんシートに貼付けされているかみる。 一時的に貼付けシート名をみかんだけ固定にしてみる。 5つのシートをすべて選んで何かしてますか。 貼付け終わったみかんから随時閉じる。 すべてセルのコピーでなくシートコピーで試す。 参考で。
お礼
ありがとうございました。
補足
とりあえず思ったように動きましたがファイルA~Eを保存しないで 閉じたいのですが文章を入れるとERRになります。 ActiveSheet.Pasteの下に Filename:="C:\Documents and Settings\※※※\My Documents\データー\A.xls" .Close SaveChanges:=Faise では駄目なのでしょうか? --------------------------- Sub Macro2() Sheets("みかん").Select Selection.ClearContents Sheets("りんご").Select Selection.ClearContents Sheets("バナナ").Select Selection.ClearContents Sheets("ぶどう").Select Selection.ClearContents Sheets("いちご").Select Selection.ClearContents Workbooks.Open Windows("A.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("みかん").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\B.xls" Windows("B.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("りんご").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\C.xls" Windows("C.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("バナナ").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\D.xls" Windows("D.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("ぶどう").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\※※※\My Documents\データー\E.xls" Windows("E.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("いちご").Select Range("A1").Select ActiveSheet.Paste Sheets("変換").Select End Sub
- nattocurry
- ベストアンサー率31% (587/1853)
マクロが実際にどういうコードになっているのかを見ないと、何とも言えません。 コードを提示してください。 ところで、「ファイルA~Eのデータが貼りつきません。」というのは、どういう意味でしょうか? その時点で、ファイルZのシートみかんと、ファイルAのしーとみかんの内容は同じですよね。 シートの内容が変わらない、ということですか? 内容が変わらないのは当たり前ですよ。同じ内容なんですから。 それとも、シートに何も無い状態になると、いうことですか? であれば、削除はできているけど、コピーできていないということになりますね。
お礼
説明不足で申し訳ありませんでした。 ありがとうございました。
補足
説明不足で申し訳ありません。 ファイルA~EのデータにはA列すべての行に9月2日とあります。 ファイルZのシート「みかん」~「いちご」は 現在A列の値5シートともに9月1日です。 マクロを走らせたら、 ファイルZのシート「みかん」~「いちご」のA列が9月2日に置き換わる予定です。 おっしゃるとうりマクロの記録をした時点で ファイルZはファイルA~Eと同内容で9月2日ですので 上書き保存後、ファイルZのシート「みかん」~「いちご」の内容は マクロ記録前の9月1日に手修正してマクロの実行を行いました。 マクロを起動するとファイルZの 「みかん」「りんご」「バナナ」「ぶどう」のシートが空白になり 「いちご」のシートだけが9月1日→9月2日になり、カーソルは ファイルZのシート「変換」のA1にきています。 Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2010/9/3 ユーザー名 : ' ' Sheets("みかん").Select Cells.Select Selection.ClearContents Sheets("りんご").Select Selection.ClearContents Sheets("バナナ").Select Selection.ClearContents Sheets("ぶどう").Select Selection.ClearContents Sheets("いちご").Select Selection.ClearContents Windows("A.xls").Activate Selection.Copy Windows("Z.xls").Activate Sheets("みかん").Select Range("A1").Select ActiveSheet.Paste Windows("B.xls").Activate Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("りんご").Select Range("A1").Select ActiveSheet.Paste Windows("C.xls").Activate Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("バナナ").Select Range("A1").Select ActiveSheet.Paste Windows("D.xls").Activate Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("ぶどう").Select Range("A1").Select ActiveSheet.Paste Windows("E.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("いちご").Select Range("A1").Select ActiveSheet.Paste Sheets("変換").Select End Sub
お礼
ありがとうございました。
補足
すいません。修正したマクロではこうでした。 「,READONLY:=TRUE」は今度試してみます。 Sub Macro2() ' Sheets("みかん").Select Selection.ClearContents Sheets("りんご").Select Selection.ClearContents Sheets("バナナ").Select Selection.ClearContents Sheets("ぶどう").Select Selection.ClearContents Sheets("いちご").Select Selection.ClearContents Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\A.xls" Windows("A.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("みかん").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\B.xls" Windows("B.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("りんご").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\C.xls" Windows("C.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("バナナ").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\D.xls" Windows("D.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("ぶどう").Select Range("A1").Select ActiveSheet.Paste Workbooks.Open Filename:="C:\Documents and Settings\07066s\My Documents\データー\E.xls" Windows("E.xls").Activate Cells.Select Application.CutCopyMode = False Selection.Copy Windows("Z.xls").Activate Sheets("いちご").Select Range("A1").Select ActiveSheet.Paste Sheets("Sheet1").Select End Sub