こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロ

複数のエクセルファイルを1つのエクセルファイルのシートにコピーをマクロで行いたい。

マイドキュメントのデーターというフォルダ内に
エクセルファイルA(シート名みかん)
エクセルファイルB(シート名りんご)
エクセルファイルC(シート名バナナ)
エクセルファイルD(シート名ぶどう)
エクセルファイルE(シート名いちご)

があります。

雛形は同じです。すべてA列~F列までデータが入っています。
行数はファイルによって違います。
また毎日自動で上書き更新され、毎日行数が変わります。

エクセルファイルZがあります。シートが7個あります。
・変換
・集計
・みかん
・りんご
・バナナ
・ぶどう
・いちご

エクセルファイルZを開きます。(各シートには昨日のデータが貼り付けてあります。)
マイドキュメントのデーターフォルダも開いておきます。

エクセルファイルZにおいて「マクロの記録」を起動。

エクセルファイルZの
【みかん】~【いちご】までの5シートを全データDELETEします。

開いてあるフォルダ「データー」の中からエクセルファイルAを開きます。
(タスクバーにいます)
ファイルAのシート【みかん】の全データ選択して
エクセルファイルZの【みかん】というシートのA1セルにカーソルを
あわせて貼り付けします。

開いてあるフォルダ「データー」の中からエクセルファイルBを開きます。
(タスクバーにいます)
ファイルBのシート【りんご】の全データ選択して
エクセルファイルZの【りんご】というシートのA1セルにカーソルを
あわせて貼り付けします。
これと同じ操作を【バナナ】【ぶどう】【いちご】も行います。

エクセルファイルZにおいて「マクロの記録」を終了させます。
マクロができあがりました。

ファイルZを上書き保存して終了。再立ち上げで記録したマクロを実行。

エラーにはなりませんが、ファイルZの5種類各シートに
ファイルA~Eのデータが貼りつきません。

何か無理な事をしているのでしょうか?
もしかしてシート名が同じだと駄目?とためしにファイルZのシート名【みかん】~【いちご】を
【みかんZ】~【いちごZ】に変更してマクロを再記録しても
駄目でした。

よろしくお願いします。

投稿日時 - 2010-09-03 14:54:13

QNo.6155704

困ってます

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

保存しないで閉じる、でなくて読み取り専用で開く、なら参考ページあります。
ファイルを選ぶ画面の開くボタンにオプションあります。

OPENの記述行のファイル名の後、「,READONLY:=TRUE」と書きます、試しにマクロを作って確認してみて下さい。

閉じるタイミングはAからZへ貼付けたらA選んで閉じていったんZ選んでB開く、感じです。

投稿日時 - 2010-09-07 16:51:05

補足

すいません。修正したマクロではこうでした。

「,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

投稿日時 - 2010-09-16 18:39:30

お礼

ありがとうございました。

投稿日時 - 2010-09-16 18:47:40

ANo.4

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(4)

ANo.3

最初、Aブックが開いている状態から、マクロ保存したのではありませんか。BやCを開く時と違う記述です。

Zブック開いてマクロ実行すると、Aブック開いてコピー、Zブックに貼付け、Bブック開いてコピー、Zブックに貼付け、のように開くのもマクロでおこなう。

記述確認してみて下さい。

投稿日時 - 2010-09-06 16:39:24

補足

ありがとうございます。
とりあえず下に示した文で思ったように動くようになりました。
残る問題は、ファイル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

投稿日時 - 2010-09-07 08:57:10

お礼

>最初、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

投稿日時 - 2010-09-16 18:42:53

ANo.2

貼付けたが値を消す操作あり

貼付け値が空

シート名がおかしくて実行時エラー

ほか要因
このままでは何とも言えません。


みかんへ貼付けし次のりんごを選択したとき保存してみる。みかんシートに貼付けされているかみる。

一時的に貼付けシート名をみかんだけ固定にしてみる。

5つのシートをすべて選んで何かしてますか。

貼付け終わったみかんから随時閉じる。

すべてセルのコピーでなくシートコピーで試す。

参考で。

投稿日時 - 2010-09-03 16:00:17

補足

とりあえず思ったように動きましたがファイル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

投稿日時 - 2010-09-03 17:04:50

お礼

ありがとうございました。

投稿日時 - 2010-09-16 18:46:27

ANo.1

マクロが実際にどういうコードになっているのかを見ないと、何とも言えません。
コードを提示してください。

ところで、「ファイルA~Eのデータが貼りつきません。」というのは、どういう意味でしょうか?
その時点で、ファイルZのシートみかんと、ファイルAのしーとみかんの内容は同じですよね。

シートの内容が変わらない、ということですか?
内容が変わらないのは当たり前ですよ。同じ内容なんですから。

それとも、シートに何も無い状態になると、いうことですか?
であれば、削除はできているけど、コピーできていないということになりますね。

投稿日時 - 2010-09-03 15:05:02

補足

説明不足で申し訳ありません。

ファイル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

投稿日時 - 2010-09-03 15:45:03

お礼

説明不足で申し訳ありませんでした。
ありがとうございました。

投稿日時 - 2010-09-16 18:45:26

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-