現在、入力シートに数値等を入力後、「転記」ボタンをクリックし、転記を確認(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)のみ添付しました。
No.2ベストアンサー
- 回答日時:
「Sub 印刷」の最後ではなく、現在の「Sub 転記」の最後の方に付け加えて下さい。
そうすることによって転記終了時に印刷サブルーチンを呼び出すことができるはずです。
No.1
- 回答日時:
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 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAコードが作動せず、どこに問題があるのか教えて下さい。 3 2023/06/13 13:20
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。 6 2023/03/21 16:12
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
逆方向印刷をしたい。(VB6)
-
印刷要求順番と印刷出力順番が...
-
EXCELファイルの複数ダウンロー...
-
VBAで印刷スプール終了の判定を...
-
プリンタドライバの用紙サイズ...
-
VB6上から印刷ダイアログを表示...
-
オートメーションエラー(214741...
-
印刷ダイアログを表示させない方法
-
Excel VBA オブジェクトが必要...
-
PHPでPDFの自動印刷
-
イベントプロシージャ 印刷が...
-
ActiveReportsの帳票印刷について
-
VB6でのピクチャボックスの...
-
印刷画面が表示されない
-
webページの印刷制限について
-
VBSでExcelファイル印刷時のプ...
-
VB.NETで罫線付きのデータを印...
-
マクロコードについて
-
vba 時間の引き算 例えば 15:00...
-
分かる人は簡単なのだろうが、v...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
印刷ダイアログを表示させない方法
-
ActiveReportsを使って[印刷ダ...
-
印刷ダイアログを表示させたくない
-
プリンターを指定して印刷するには
-
PDFファイルを印刷し終了するには
-
vbaでPDFファイルが印刷されない
-
VBscriptでPDFファイルを直接印...
-
VBからのプリンタ制御について
-
ACCESSで設定した帳票の用紙サ...
-
イベントプロシージャ 印刷が...
-
EXCELファイルの複数ダウンロー...
-
phpでの自動印刷
-
VBSでExcelファイル印刷時のプ...
-
VBAにて指定したセルをプルダウ...
-
VBAで印刷スプール終了の判定を...
-
プリンタの印刷ジョブを削除し...
-
PHPでPDFファイルの直接印刷
-
A4の2枚をA3の1枚にする編集方法?
-
VBでExcel印刷する時のプリンタ...
おすすめ情報
有り難うございます。Sub印刷()........の最後に 「call印刷() 'Sub印刷()を呼び出す。」を追加したのですが・・・・うまくいきませんでした。ご説明が不十分でした。「印刷」ボタンは使わず、「転記」と同時に印刷したいのです。したがって、「転記」ボタン=「転記印刷」ボタンに書き換える予定です。よろしくお願いします。