[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロ動作を途中で止めたい』(ちぃさん)
いつもお世話になります。
今回、私が前回質問した内容とは違いますが
[[20081013114718]] で記述してあるマクロ内容が使いたく挑戦しているのですが躓き、先に進めません。
どうかお助けいただけないでしょうか。
Ctr+P などで印刷をする際に条件と一致すれば印刷処理を停止し、一致しなければ印刷を続行し印刷後の処理をしたいです。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Sheets("Sheet1").Range("E1") = 0 Then Cancel = True: Exit Sub
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
'条件と等しければイベント停止
Application.OnTime Now(), "ThisWorkbook.AfterPrint" End Sub '=============================================================================== Sub AfterPrint() ActiveSheet.Range("a1").Value = "印刷完了" 'ここに印刷後の処理コードを記述
Dim a
Application.EnableEvents = False
Application.DisplayAlerts = False
Sheets("Sheet1").Activate
a = Range("G65536").End(xlUp).Row
Range("G" & a + 1) = Now()
ActiveWorkbook.Close SaveChanges:=True
End Sub
バージョン2010では問題ないのですが2007になると印刷ダイアログが表示されずプリンターを選択できません。
何故でしょうか?
If Sheets("Sheet1").Range("E1") = 0 Then Cancel = True: Exit Sub
'~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
やはりこの部分がダメなのでしょうか。
どうか宜しくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
If Sheets("Sheet1").Range("E1") = 0 Then Cancel = True: Exit Sub これを If Sheets("Sheet1").Range("E1") = 0 Then Cancel = True Else として
Application.OnTime Now(), "ThisWorkbook.AfterPrint" End Sub これを Application.OnTime Now(), "ThisWorkbook.AfterPrint" End If End Sub にして見て下さい
要件とは別ですが a = Range("G65536").End(xlUp).Row この665536はexcel2003までの最大行数で2007から変わっています (そこまでの行数は使っていないのであれば問題はありませんが。。。) a = Range("G" & Rows.Count).End(xlUp).Row と、しておきましょう
(ぽんた) 2017/01/12(木) 00:31
試してみます。
(ちぃさん) 2017/01/12(木) 11:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.