アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセルのマクロについて質問があります。

注文書と検査表 同じ商品名があると検査表を印刷しています。

エクセル注文書は、
デスクトップにあってD列に商品名があります

エクセル検査表は、
デスクトップにあって1つのフォルダーに
たくさんのエクセル検査表があります。
フォルダー名は、検査表です。
フォルダー内のエクセル検査表の名前は
商品名です。

上記の事をマクロでやりたいのですが
お力を貸して頂けないでしょうか?
宜しくお願い致します

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

  • 検査表フォルダーの中に「○○.xlsx」(○○は商品名)がたくさんあるという事です

      補足日時:2016/11/04 16:43

A 回答 (5件)

E列には印刷日時が入っていますか?



検査表フォルダーの中のファイルは途中で開いてすぐ閉じますか?
    • good
    • 0

大変遅くなりました。

こんなのはいかがですか?
---------------------------------------------------------------
Sub Sample()
Dim フォルダー名 As String
Dim ファイル名 As String
Dim 行 As Long
Dim 終 As Long
フォルダー名 = ThisWorkbook.Path & "\検査表\"
終 = Cells(Rows.Count, 4).End(xlUp).Row
For 行 = 2 To 終
If Cells(行, 5).Value = "" Then
ファイル名 = フォルダー名 & Cells(行, 4).Value & ".xlsx"
If Dir(ファイル名) = "" Then
Cells(行, 5).Value = "対象無"
Else
Workbooks.Open Filename:=ファイル名
ActiveWindow.SelectedSheets.PrintOut
ActiveWindow.Close
Cells(行, 5).Value = Now
End If
End If
Next
End Sub
---------------------------------------------------------------
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
マクロは読み込むのですが印刷がされません。印刷機の問題でしょうか?

お礼日時:2016/11/05 18:57

適当なブックを作って、下記のマクロを書いてください。

このブックがマクロブックとなります。

マクロブックを開きます。
次に、注文書を開いて、印刷したい検査表の一覧があるシートをアクティブにした状態で、Alt+F8でマクロのウィンドウを開き、最初に作ったマクロを起動すれば、印刷が始まります。

GooUserラックさんが提案しているような、刷できたか否かを表示する洒落た機能は一切ありません。必要であればご自分で追加してください。

Sub 印刷()
Dim i As Long
Dim wb As Workbook
With ActiveSheet
For i = 1 To .Cells(Rows.Count, "D").End(xlUp).Row
On Error Resume Next
Set wb = Workbooks.Open(.Parent.Path & "\検査表\" & .Cells(i, "D").Value & ".xlsx")
If Err.Number = 0 Then
'wb.PrintPreview '←テストの時は、こっちの方が便利です。
wb.PrintOut
wb.Close
End If
On Error GoTo 0
Next i
End With
End Sub
    • good
    • 0

No.1 お礼について



すみません。少し誤解をさせてしまった様なので補足しておきます。
多分ですが、D列にはいくつかの商品名が書かれていると思いますので、個々に印刷するファイルがあると思いますので、一括して右上では対応できないと思います、ファイルごとに印刷日時やエラーを書き込む必要があるのでE列あたりが良いと思います。
これは履歴として残す意味もありますし、再印刷するときにわざわざ商品名を入れなおさず、印刷日時の欄をクリアするだけで済みます。
    • good
    • 1
この回答へのお礼

早々のご対応ありがとうございます。
E列で問題ありません。
宜しくお願い致します

お礼日時:2016/11/04 15:04

一応確認いたします。


デスクトップにあるのは「注文書.xlsm」と「検査表」というフォルダーで、「検査表」フォルダーの中に「○○.xlsx」(○○は商品名)がたくさんあると言うことでしょうか?
「注文書.xlsm」ですが印刷したら別列に印刷日時を入れたほうが良いと思いますが、どこに入れればよいですか?(印刷日時のないもののみ印字する。)また、ここに対象ファイルがなく印刷出来なかったとき「対象無」などのエラーを書き込んだ方がよいと思います。
いかがでしょうか?
    • good
    • 0
この回答へのお礼

返信ありがとうございます。
印刷日時は右上でも可能でしょうか?また、エラーの書き込みも入れて頂けたら助かります。お力をかしていただき
感謝しています

お礼日時:2016/11/04 14:10

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