dポイントプレゼントキャンペーン実施中!

現在、入力シートに数値等を入力後、「転記」ボタンをクリックし、転記を確認(OK)、
直ぐに「印刷」ボタンで伝票(領収書を含む。)を出力しています。この動作を「転記印刷」ボタン1つでできるようにしたい。教えて下さい。
なお、現在のコードは次を使ってます。また、画像を添付していますのでよろしくお願いします。

① 転記
Public Sub 転記()

Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim maxrow As Long
Dim row As Long
Dim dicT As Object
Dim key As Variant
Set sh1 = Worksheets("納品書台帳")
Set sh2 = Worksheets("入力シート")
Set dicT = CreateObject("Scripting.Dictionary")
maxrow = sh1.Cells(Rows.Count, "D").End(xlUp).row
'伝票番号を記憶
For row = 7 To maxrow
key = sh1.Cells(row, "D").Value
dicT(key) = row
Next
key = sh2.Cells(8, "R").Value
If dicT.exists(key) = False Then
MsgBox ("伝票番号=" & key & "は納品書台帳にありません")
Exit Sub
End If

If sh2.Cells(12, "E").Value = "" Then
MsgBox ("名前が未入力です")
Exit Sub
End If
If sh2.Cells(24, "S").Value = "" Then
MsgBox ("金額が未入力です")
Exit Sub
End If
row = dicT(key)
sh1.Cells(row, "G").Value = sh2.Cells(12, "E").Value '名前
sh1.Cells(row, "H").Value = sh2.Cells(24, "S").Value '金額
MsgBox ("転記完了")
End Sub

② 印刷
 Sub 印刷()
 '
' 印刷 Macro
 '
 
 '
  Sheets("納品書").Select
  ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
  Sheets("入力シート").Select
End Sub

※画像は入力シート(sheet2)のみ添付しました。

「シート入力後に伝票へ転記から印刷までの動」の質問画像

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

  • 有り難うございます。Sub印刷()........の最後に 「call印刷() 'Sub印刷()を呼び出す。」を追加したのですが・・・・うまくいきませんでした。ご説明が不十分でした。「印刷」ボタンは使わず、「転記」と同時に印刷したいのです。したがって、「転記」ボタン=「転記印刷」ボタンに書き換える予定です。よろしくお願いします。

      補足日時:2019/05/27 18:11

A 回答 (2件)

「Sub 印刷」の最後ではなく、現在の「Sub 転記」の最後の方に付け加えて下さい。


そうすることによって転記終了時に印刷サブルーチンを呼び出すことができるはずです。
    • good
    • 0
この回答へのお礼

大変有り難う御座いました。追加するところが間違っていました。満足いく動作ができ感謝しています。

お礼日時:2019/05/28 16:49

MsgBox ("転記完了") ’操作手順を減らすのであれば不要ですが、下記のように確認操作は必要ではないですか。


※ このあたりに
call 印刷() ’Sub 印刷() を呼び出す。
End Sub

と、すればよいのではないですか?

確認メッセージの例を示すと・・・。
Dim rc As Integer
rc = MsgBox("印刷しますか?", vbYesNo + vbQuestion, "確認")
If rc = vbYes Then
call 印刷()
Else
Exit Sub ’不要ですが、念のため!
End If

Msgboxの参考に!
http://officetanaka.net/excel/vba/function/MsgBo …
    • good
    • 0

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