- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:印刷後のVBAの実行(4))
VBAの実行方法についての質問
このQ&Aのポイント
- VBAを使ってワークシートの印刷時に特定の条件に応じて値をワークシートに貼り付けたいです。具体的には、印刷するシートのセルM1の値に応じて、貼り付け先を変えるようにしたいです。
- 現在のコードでは、ワークシート日報への値のみ貼り付ける部分を少し変更したいです。具体的には、M1の値が1ならばワークシート日報のF5に、2ならばF6に、3ならばF7に、というようにしたいです。
- どのようにコードを変更すれば、指定した条件に応じてワークシートに値を貼り付けることができるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
Worksheets("日報").Range("F5")の状態にかかわらず、 M1が1⇒F5 M1が2⇒F6 M1が3⇒F7 とM1の値+4 の行(F列)を基点に貼り付けるんですね? Private Sub Workbook_BeforePrint(Cancel As Boolean) If ActiveSheet.Name <> "顧客データー1" Then Exit Sub With ActiveSheet If .Range("D1").Value = "" Then Cancel = True MsgBox ("名前を入力してください") .Range("D1").Select Exit Sub End If If Worksheets("顧客データー1").Range("D6") = "不可" Or _ Worksheets("顧客データー2").Range("D6") = "不可" Then GoTo P1 .Range("F650:O650").Copy r = .Range("M1").Value + 4 Worksheets("日報").Range("F" & r).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False P1: .Range("A1").Select End With End Sub
お礼
出来ました、r = .Range("M1").Value + 4,Worksheets("日報").Range("F" & r).PasteSpecial Paste:=xlPasteValuesがなんかポイントみたいですね、ありがとうございます