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

締切り済みの質問

Excel マクロ 複数ブックの全てのシートに書式だけを自動処理で貼り付けたいのですが

始めての質問です、
ExcelのブックがC:\00\00フォルダに同じ形式で650ほどあります、その全てのブックに1から4のシートがあり、その全てに0.xlsファイルから条件付き書式をコピーして書式だけ全てのシートに貼り付けたいのですが、行き詰ってしまいました。
皆様のお答えや自動記録などをコピーして分らないなりに作って見ましたが、下のプログラムでは書式の貼り付けが上手くいかず困っています。
始めてのマクロなのでもうどうしたら良いのか分かりません、
なにが行けないのか、皆様どうかご教授ください。

Sub test()
Windows("0.xls").Activate
Sheets(Array("1")).Select
Sheets("1", "2", "3", "4")).).Activate
Range("A1:AA64").Select
Selection.Copy
For Each fl In CreateObject("Scripting.FileSystemObject").GetFolder("C:\00\00").Files
If Right(fl.Name, 4) = ".xls" Then Workbooks.Open Filename:="C:\00\日報\" & fl.Name: Sheets(Array("1", "2", "3", "4")).Select: Range("A1").Value = "Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False": ActiveWorkbook.Save: ActiveWindow.Close
Next
End Sub

OSはXPSP2でExcel2003を使っています、よろしくお願いします。

投稿日時 - 2009-10-26 15:52:45

QNo.5398148

暇なときに回答ください

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

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

回答(2)

ANo.2

質問でやりたいことが、整理されてない。
(1)コピー元のシートは1つか、例えばSheet1-Sheet4までの4つの範囲の書式か。
(2)コピー元4シートをコピーするコードと
(3)コピー先である、フォルダの中のエクセルブックを捉えるコードと(VBSを使うことForEachを使う。Dir関数でも出来てそのほうが易しいと思うが)
(4)捕まえた1つの「フォルダ内のエクセルブック」の全シートにに書式を貼り付けていくコード
これらを分けてテストすべきだ。
>書式の貼り付けが上手くいかず困っています。
書式だけの問題ではなかろう。最後まで動いているのか。
まず上記の段階を踏んで、3ブックぐらいでテストしてみるもんだ。
初心者は特にそうだ。
(2)の段階で質問のコードは動きますか。

投稿日時 - 2009-10-26 17:49:46

お礼

imogasiさん遅くなりすみません、早速の回答ありがとうございます。
纏まりが無く申し訳ないです。

いろいろ調べたところ条件付書式はこのコードでは無理なようです、
回答して頂きとてもありがたく思います、ご指摘のVBS、ForEach、Dir関数あたりを再度勉強して出直してまいります。(出直さずうまく動いた方がいいですね)
なにぶん初心者ですので、失礼したことお詫びします。

投稿日時 - 2009-10-27 11:16:46

ANo.1

少し話しがわかりにくいです。

確認ですが、
フォルダ内に650のEXCELブックがあり、それらすべてに
0.XLSの条件付書式の書式を貼り付けるということですか?

投稿日時 - 2009-10-26 16:41:06

お礼

van111さん遅くなりすみません、早速ありがとうございます。
お礼の順番が逆になってしまいました、申し訳ありません。
van111さんのおっしゃるとうりなのですが、for処理というものを使わないといけないようなので、もう一度修行してきます、ありがとうございました。

投稿日時 - 2009-10-27 11:25:19

あなたにオススメの質問