質問: Excel 2007の印刷マクロについて御教示ください。 <実行したいこと> ○ 数百に及ぶエクセルファイル(すべて単一シートからなる同一セル構成)を、逐一個別のファイルを開いて印刷するのではなく、一度だけエクセルをロードして一挙にこれらを印刷したい。 <環境・条件> ・印刷したいファイル名称は、D:\FILENAMES.TXTに、1ファイル一行単位で記録されている。 D:\DATA\01A001.XLS D:\DATA\01A002.XLS D:\DATA\02A010.XLS ... ・印刷の順序は、D:\FILENAMES.TXTに書き込まれているとおりとする。 ・各エクセルファイルは、すべて単一シートの構成である。 ・使用するエクセルは2007、OSはWinXP ※ エクスプローラで印刷したいエクセルファイル名を名称の上昇順に表示させ、これらを一括して範囲指定し右クリックして印刷を指定すると印刷はできますが、印刷の順序が必ずしも上昇順ではなくなってしまい、私の場合この機能は使えません。エクセルのマクロで処理するのが適当なのではないかと考えていますが、エクセルのマクロは使ったことがありません。よろしくお願いします。
回答: D:\FILENAMES.TXTを1行読んでは印刷の方法もあるが、先に一旦、 D:\FILENAMES.TXT全行をエクセルブックのSheet1に読み込む(操作で読み込めるでしょう) するとD:\FILENAMES.TXTは、用は無くなり、エクセル側に集中できる。 そのブックの標準モジュールに、この質問の印刷するVBAコードをつくり、それを行数分繰り返して印刷。 開くブック名は上記エクセルに読み込んだシートの行のA列のセルの値を使う。 最終行まで繰り返す(最終行を捕まえるコードはわかりますよね) 各ブックのシートは1シートしかないということなので、全ブックブック名.Worksheets(1).PrintOutでよかろう。シートの印刷範囲指定する必要があるかどうか、最初のブックでテスト敵に確認。 印刷後読み込んだブックはClose。 今回1回だけなら、数百ブックを1回に印刷印刷し、用紙が出終わった事を確認後、順次印刷したほうが、印刷トラブルなどに柔軟に対処できるのでは。 まづ2ブックぐらいでテストして、ブック数を増やすのがコツだろう。For i=1 to 2で2行だけ対象に出来る。 ーー 以上だが、何も難しい点は見つからない。 質問しているということは、何処が判らないのか絞らないと。現状では丸投げである。