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

解決済みの質問

VBA beforeprintについて

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If ActiveSheet.Name = "sheet1" Then

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

ElseIf ActiveSheet.Name = "sheet2" Then

If Range("A47").Value = 文字 Then
Cancel = True
   MsgBox ("日付を入力してください")
Range("A47").Select

Exit Sub
End If

Exit Sub
End If


End Sub

上記は印刷をする前に実行されるコードですが、上記を実行して印刷をした後に自動で下記のVBAを実行したいのですが

Sub データー取り込み()

ActiveSheet.Range("B2000:Z2000").Copy

ChDir "\\データーA\データーB\データーC\データーD"
Workbooks.Open Filename:="\\データーA\データーB\データーC\データーD\データーシート1.xls"
Sheets("顧客データー").Select

If Worksheets("顧客データー").Range("B18").Value = "" Then
Worksheets("顧客データー").Range("B18").PasteSpecial Paste:=xlPasteValues
Else
Worksheets("顧客データー").Range("B65536").End(xlUp).Offset(1, 0).PasteSpecial _
Paste:=xlPasteValues
End If

ActiveWorkbook.Save
ActiveWindow.Close

End Sub

上記のコードと下記のコードをどのように絡めたらいいのかわかりません。アドバイスお願いします。

投稿日時 - 2009-02-26 11:31:32

QNo.4750438

すぐに回答ほしいです

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

以下の一行を

Private Sub Workbook_BeforePrint(Cancel As Boolean)
の最後(End Subの前)に挿入します。

Application.OnTime Now, "データー取り込み"


だけど、If Range("A47").Value = 文字 Then っておかしくないですか?
変数なのかな。

投稿日時 - 2009-02-26 12:44:27

お礼

教えてもらったのでやってみたら、なんか上手くいきそうです。If Range("A47").Value = 文字 Then の文字の部分は僕も良くは判らないんですが多分関数がA47に反映されてる時(例えば=B5とか引っ張って日付をあらわす時で)""だと上手くいかないけど文字にすると大丈夫って言う感じでしょうか。アドバイス有難うございました。

投稿日時 - 2009-02-26 13:50:59

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

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

回答(1)