みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

印刷後のVBAの実行(4)

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "顧客データー1" Then


If Range("D1").Value = "" Then
Cancel = True
MsgBox ("名前を入力してください")
Range("D1").Select
Exit Sub
End If


Else

Exit Sub
End If
End If

If Worksheets("顧客データー1").Range("D6") = "不可" Or _
Worksheets("顧客データー2").Range("D6") = "不可" Then GoTo P1
ActiveSheet.Range("F650:O650").Copy


If Worksheets("日報").Range("F5").Value = "" Then
Worksheets("日報").Range("F5").PasteSpecial Paste:=xlPasteValues
Else
Worksheets("日報").Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial _
Paste:=xlPasteValues
End If
Application.CutCopyMode = False
P1:
ActiveSheet.Range("A1").Select

End Sub

現在上記コードを使っていますが、ワークシート日報への値のみ貼り付けの部分で少し変更したいのですが、印刷するシートのセルM1の値が1ならそのシートのRangeF650:O650をコピーしてワークシート日報のF5に値のみで貼り付け、M1の値が2ならF6に、M1の値が3ならF7に・・・という感じでM1の数字の値によってワークシート日報へ貼り付け先を変えていくようしたいのですが、どのようにコードを変更したらいいでしょうか?

投稿日時 - 2008-11-12 11:17:43

QNo.4472354

すぐに回答ほしいです

質問者が選んだベストアンサー

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

投稿日時 - 2008-11-12 15:47:05

お礼

出来ました、r = .Range("M1").Value + 4,Worksheets("日報").Range("F" & r).PasteSpecial Paste:=xlPasteValuesがなんかポイントみたいですね、ありがとうございます

投稿日時 - 2008-11-12 16:30:46

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)