[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ:同一フォルダ内の複数ファイルの各シートをカラーコピーする方法』(がちゃ)
まったくのマクロ初心者です。
デ ィスクトップ上のフォルダーの中にある県別のファイルの中から シートA、シートB、シートCを選択しカラー出力するマクロを組みたいです。
愛知ファイルを開く⇒シートA・シートB・シートCを選択しカラー出力 ⇒東京ファイルを開く⇒シートA・シートBを選択しカラー出力 ⇒大阪ファイルを開く⇒シートA・シートB・シートCを選択しカラー出力 ⇒各都道府県繰り返し
県別のファイルの中にはシートA・B・Cがすべてある県もあればシートA・Bしかないものもあります。
今、自動マクロで記録をし、実行をすると「実行エラー'9': インデックスが有効範囲にありません。」となってしまいます。
お分かりになる方がいらっしゃるようでしたら教えてください。
//////////////////////////////////////////////////////////////////// Sub 印刷() ' ' 印刷 Macro ' マクロ記録日 : 2008/6/2 ユーザー名 : △△△△
'
Application.WindowState = xlMinimized
ActiveWindow.ScrollWorkbookTabs Position:=xlLast
Sheets(Array("★★★★", "●●●●")).Select
Sheets("★★★★").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Windows("愛媛.xls").Activate
Sheets(Array("★★★★", "●●●●")).Select
Sheets("★★★★").Activate
Windows("宮崎.xls").Activate
Windows("愛媛.xls").Activate
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Windows("Book1").Activate
End Sub
エラーとなる構文も提示していただけると原因が判りやすいのですが。
ヤマカンで最初の
Windows("愛媛.xls").Activate
ではないですか?
「??ファイルを開く」となっていますが、Activateメソッドは
「すでに開かれているブックをアクティブにする」と言うものなので、
目的のブックが閉じている場合は
「実行エラー'9': インデックスが有効範囲にありません。(そういう
名前のWindowは開かれていないから、Activeに出来ないよ!)」となり
ます。
ブックを開いた状態から記録するのではなくて、ブックを開くところも
記録してみましょう。
(みやほりん)(-_∂)b
エラーとなる構文は黄色になる構文ってことでしょうか?
だとすると
Sheets(Array("★★★★", "●●●●")).Select
です。
ブックを開くところから記録はしているんですが・・・。
質問を分割で考えたほうがいいんでしょうか?
『ディスクトップ上の同一フォルダの中にある複数ファイルを開くマクロ』
をまず解決したいのですが、方法はありますか??
がちゃ
2つのシート:"★★★★", "●●●●"のブックがアクティブになっていないか 又は 2つのシート:"★★★★", "●●●●"が存在しないかのどちらかでは?
(1or8)
1or8さん
ありがとうございます。
ディスクトップにファイルもあって、その中にはシートもあるんですが・・・。
困りました。
ファイルを開くだけのマクロってどうしたらいいんでしょうか?
ブックを開くコードが記録によって分かったら、必要なブック数だけ繰り返せばいいのでは?
Workbooks.Open "愛媛.xls"
Sheets(Array("★★★★", "●●●●")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Workbooks.Open "宮崎.xls"
Sheets(Array("★★★★", "●●●●")).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
(1or8)
「ブックに含まれる全てのシートを印刷する」というのなら、
印刷ダイアログのオプションに「ブック全体」と言うのがあります。
これを選択して印刷するとシートを指定する必要がないでしょう。
Workbooks.Open Filename:="C:\愛媛.xls"
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
ActiveWindow.Close
Workbooks.Open Filename:="C:\宮崎.xls"
ActiveWorkbook.PrintOut Copies:=1, Collate:=True
ActiveWindow.Close
・
・
(ブックの数だけ繰り返し)
【フォルダ内ブック一括印刷 関連ログ】
[[20060908131836]] 『複数ファイルの一括印刷』(TMG)
[[20070117130924]] 『フォルダの中にある複数のエクセルを一度に印刷したいのです。』(石田)
ちなみに、「ディスクトップ(円盤上)」ではなくて、
「デスクトップ(机上)」
(みやほりん)(-_∂)b
がちゃです。
とりあえず解決しました!!!
ありがとうございました。
Workbooks.Open Filename:="C:\Documents and Settings\【社員番号】デスクトップ\【フォルダ名】\東京.xls"
Sheets(Array("【シートA】", "【シートB】", "【シートC】")).Select
Application.ActivePrinter = "カラープリンタ on Ne06:"
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"カラープリンタ on Ne06:", Collate:=True
ActiveWindow.Close
上記の繰り返し。
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.