[[20190605111853]] 『リスト化されている表から自動的にファイルを印刷』(める) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『リスト化されている表から自動的にファイルを印刷』(める)

工場勤務をしております。
毎日リストが送られてきてそれに対応するファイルを
印刷する作業をマクロで簡略化したいと思っています

エクセルの表からファイル名を拾って自動的に印刷する場合
ファイルを開くマクロを改造し、ファイルを開く→印刷→ファイルを閉じる
というマクロを組めば可能でしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 >ファイルを開く→印刷→ファイルを閉じる 

 ↓の各作業のコードは出来ているのでしょうか?

 ファイルを開く
 印刷
 ファイルを閉じる 
(OK) 2019/06/05(水) 11:55

印刷設定の部分を省きました

    End With
    Application.PrintCommunication = True
    ActiveWindow.SelectedSheets.PrintOut Copies:=3, Collate:=True, _

これが印刷するコードです

ファイル名をセルから読み取って開くコードが

Dim fn As String
fn = Range("G4")
ChDir "ネットワーク上のドライブのフォルダ名"
Workbooks.Open Filename:=fn

でいけないかと思ってるのですがうまくいっていません。
G4から何行リストが続くのか一定でないため一つづつ行をずらして読み取らせていきたいとは思ってるんですが・・・

セルの選択だけは手動にして対応するファイルを自動印刷できれば
それでもいいかと思っていますがVBA触りはじめたばかりなのでコードのイメージはついていないです

よろしくご教授願います
(める) 2019/06/05(水) 12:48


 セル範囲の取得については直近の↓が参考になるかもしれません。

[[20190530152109]] 『最終行 End(xlUP).Rowについて』(しのみや)
(OK) 2019/06/05(水) 13:22


いろんなアプローチがあるとおもいますが、私なら
>ファイル名をセルから読み取って開くコード
 sub test()
   Workbooks.Open _
    Filename:="ネットワーク上のドライブのフォルダ名" & "\" & _
              Activesheet.Range("G4").value
 end sub

みたいにします。

 ※スマホから手打ちしたので、構文に誤りがあるかもです。
   ニュアンスとしてご理解ください。

(もこな2) 2019/06/06(木) 00:35


もこなさん、OKさんお返事ありがとうございます。
かなり無理やりな力技ですがこんな感じのマクロを使うことで作動させることができました

Dim fn As String

If Len(Range("G26").Value) > 0 Then
en = Range("G26")
pn = Range("F26")

ChDir "ネットワークドライブ上のフォルダ名"

Workbooks.Open Filename:="ネットワークドライブ上のフォルダ名" & en & pn & ".xlsx"

    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
    ActiveWindow.Close

Else
End If

G列のセルに1行分空白が挟まることがあったり
リストの量が一定でないため空欄になることがあるので
IFを使って空白でなければ作動しないコードも記述しました

空白の部分やファイルが存在しないなどエラーが起こったときに全ての処理を止めるしかなく
エラーを無視させて続行させると元のリストファイルを印刷してしまうのでもう少しスマートなコードに
したかったのですがひとまずはこれで作動しているので様子を見ていきたいと思います。
ありがとうございました

(める) 2019/06/06(木) 09:05


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.