• ベストアンサー

フォルダ内のExcelシートを一度に印刷する方法を教えて下さい

Excel2002を使用しています。 フォルダに入れたExcelシート(全て同じ形式)を、一つ一つ開かずに一度に印刷しようとして、 ShiftやCtrlで複数選んで印刷をかけるのですが、一番上、もしくは選んだシートの一部のみしか印刷出来ません。 選んだシートは全てちゃんと黒くなっているのですが、印刷されるのはその一部のみです。 結局、一つ一つ選択して右クリック→印刷の手順で印刷しているので、何十枚も印刷する為時間がかかってしまいます。 何がいけないのでしょうか。 わかりにくい初歩的な質問かもしれませんが、調べてもわからずに困っています。 ご回答頂ければ嬉しいです。

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#1で提示したVBAコードではDir関数を使ってます。 Dir関数でフォルダ内のファイル一覧を取得したら ファイルの作成日時順か更新日時順に取得されると思います。 印刷する順を制御したい場合は、一度シートに名前や作成日時、 更新日時を取得しエクセルの機能でソート、ソート後のファイル 名をループしてシートを印刷、とします。

Kittyland24
質問者

お礼

お礼が遅くなって申し訳ありません! 丁寧に教えて頂いてありがとうございました。 関数はほとんどわからないので、私レベルでは難しそうですが 頑張ってやってみます。何度もありがとうございました。

その他の回答 (2)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

フォルダ内の全てのブックの「印刷設定」の「印刷範囲」が「ブック全体」にしてあれば、 印刷したいブックを選択して右クリックから「印刷」を選べば全シートを一括印刷できるようです。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

一般機能でも出来るとは思いますが、ネット上でツールを探して使う、 VBAで自分でツールを作る、という方法もあります。 VBA(エクセル)のサンプルです。 Dim fol As String Dim wb As String Dim objwb As Workbook Dim wscnt As Integer Dim i As Integer fol = "フォルダのフルパス" wb = Dir(fol & "\*.xls") Application.ScreenUpdating = False Do While wb <> "" Set objwb = Workbooks.Open(fol & "\" & wb) For i = 1 To objwb.Worksheets.Count objwb.Worksheets(i).PrintOut Next i objwb.Close , True wb = Dir() Loop Application.ScreenUpdating = True

関連するQ&A