プロが教えるわが家の防犯対策術!

タイトル通りではありますが、

1.同じフォルダにあるファイルを開く
2.印刷する(保存の必要はありません)
3.閉じる
4.次のファイルを開く
5.1~4をフォルダ内のファイル全てに適用するまで繰り返す

上記のマクロを作りたいのですが、
初心者の為、なかなか進みません。
一つずつ分解して作成したりもしましたが、どうも
ゴールが見えてこない為、知識ある方に作成していただき
それをじっくりと習得したく思います。

どなたかマクロ作成お願いできますでしょうか。

質問者からの補足コメント

  • つらい・・・

    ぽち101さん
    ご回答ありがとうございます。

    実際のところ、印刷する前に特定の列を
    非表示してから印刷するという手順があるのですが、
    列の非表示は自分でやりかたが分かったたので、
    教えていただいたものに組み合わせてみようと想定しておりました。

    excel2010になります・・・
    拡張子は.xlsxです。

      補足日時:2021/05/07 17:21
  • うーん・・・

    artooさん
    ありがとうございます。

    教えていただいたものに、
    以下のように開きたいフォルダのアドレスを入力しましたが、
    なぜか別のフォルダ(どこかは現在調べております)の
    エクセルが開いて印刷されてしまいました。

    私のフォルダの入力場所が間違っておりますでしょうか。

    Sub aaa()
    f = Dir("*.xlsx")
    Do While f <> "ここに開きたいフォルダのアドレスを入力しました"
    Set book = Workbooks.Open(f)

      補足日時:2021/05/10 13:33
  • HAPPY

    皆様 ご回答ありがとうございます。
    作成していただいたものを使用して、
    もう少しで完成しそうです。

      補足日時:2021/05/12 16:18

A 回答 (4件)

Sub aaa()


f = Dir("*.xlsx")
Do While f <> ""
Set book = Workbooks.Open(f)
↓ここは、マクロの記録でオプション指定などをいろいろした方が良いでしょう。
ActiveWindow.SelectedSheets.PrintOut
book.Close
f = Dir
Loop
End Sub
    • good
    • 3

> Do While f <> "ここに開きたいフォルダのアドレスを入力しました"



何故そんなことを??
Sub aaa()
chdir "C:\aaaa\bbbb\cccc" 'ファイルのあるフォルダー
f = Dir("*.xlsx")
以下そのまま

です。
    • good
    • 2
この回答へのお礼

ありがとうございます。
おかげさまで完成致しました!

お礼日時:2021/05/13 16:33

こんにちは! 教えます。


①新規excel 開いて、マクロコードウィンドウで標準モジュール追加し、
以下のコードを貼り付けてください。このウィンドウ閉じてください
②excelウィンドウのメニューから開発→挿入で ボタン(フォームコントロールを挿入してください。
ボタン範囲選んだらマクロの登録画面が表示されます。表示されたPrint_Click を選んでOKおしてください。(ボタンの名前を好きな名前で結構です)
これで 印刷マクロは完成です。
ボタン押したらファイル選択画面が表示されますので印刷したいファイルを選らんでOK 印刷が始まります。
デフォルトプリンターに設定しています。
DocuWorksプリンターなどデフォルトにしておけばファイルで保存されます。

'マクロコード
Sub Print_Click()

Dim myfileName As Variant
Dim myFile As Variant
Dim strFilePath As String
Dim strfileName As String
Dim ws As Worksheet

'ファイルを開くダイアログを開きます
myfileName = _
Application.GetOpenFilename( _
FileFilter:="Excel ファイル (*.xls; *.xlsx; *.xlsm),*.xls; *.xlsx; *.xlsm" & _
",CSVファイル(*.csv),*.csv" _
, FilterIndex:=1 _
, Title:="Excelファイル選択" _
, MultiSelect:=True _
)
' 単純なループカウンタ
Dim lp1 As Long, lp2 As Long


'ファイルが選択されているときは
'選択したファイルをWorkbooks.Openメソッドで開きます
Filename = Filename


If IsArray(myfileName) Then

For Each myGetFileName In myfileName
Workbooks.Open myGetFileName
UpdateLinks = 0
IgnoreReadOnlyRecommended = Ture

Application.ScreenUpdating = False
Set Workbook = ActiveWorkbook
Sheets(1).Activate
Worksheets.Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Active Printer Series on Ne01:", Collate:=True

Application.DisplayAlerts = False
ActiveWindow.Close
Application.ScreenUpdating = True


' 集計処理を行う

' ***************
Next


MsgBox " 印刷終了しました。"

Else
MsgBox "キャンセルしました。"
End If
Exit Sub
End Sub
    • good
    • 2
この回答へのお礼

ありがとうございます。
おかげさまで完成致しました!

お礼日時:2021/05/13 16:33

フォルダにあるファイルを全て選択して右クリックから印刷を押すと、


同じことが出来ますが、
その全て選択する手間や1度だけ右クリックする手間などを減らしたい
という事で合っていますか?

念のため、フォルダにあるファイルの拡張子や、
Excelバージョンを書いておくと良い回答がつくと思いますよ。
    • good
    • 3
この回答へのお礼

ありがとうございます。
おかげさまで完成致しました!

お礼日時:2021/05/13 16:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A