Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


68458 / 76738 ←次へ | 前へ→

【12817】Re:印刷時のダイアログを消したい
回答  ichinose  - 04/4/16(金) 0:40 -

引用なし
パスワード
   ▼アズキマン さん:
こんばんは。

>『エクセルの印刷中ダイアログ
>("現在1/1ページを印刷中"というやつ)
>を消す(非表示にする)方法ってありますか?
>画面上に出なければ、なんでもいいです。』
>
>上記は2003-2-26の質問ですが、回答した方の参考URLが
>「該当トピックは存在しないか公開期間を過ぎて閲覧
>ができません」となっていまして・・・。
確かAPIを使ったかと・・・。
見た覚えがあるんですが、使う機会がないなあと思い、メモってませんでした。
デスクトップを固定する方法でちょっと調べました。
'==============================================================
Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long
Declare Function GetDesktopWindow Lib "User32" () As Long
'=====================================================================
Sub sample()
  On Error Resume Next
  Dim retcode As Long
  retcode = LockWindowUpdate(GetDesktopWindow())
  ActiveSheet.PrintOut
  retcode = LockWindowUpdate(0)
  On Error GoTo 0
End Sub


調べついでに
'===========================================================
Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long
Declare Function GetActiveWindow Lib "User32" () As Long
'============================================================
Sub apiでScreenupdatong()
  On Error Resume Next
  Dim retcode As Long
    retcode = LockWindowUpdate(GetActiveWindow())
  For i = 1 To 20000
   Cells(i, 1).Value = i
   Next
  retcode = LockWindowUpdate(0)
  On Error GoTo 0
End Sub

とすると、Application.ScreenUpdating = True
と同じ効果があることがわかりました。
もっとも必要ないでけど・・・。

ただ、VB等からExcel95を起動したりするときは、
Application.Application.ScreenUpdating = True

では駄目で上記のAPIを使用する事になるそうです。

http://support.microsoft.com/default.aspx?scid=KB;JA;408072

一応、↑この辺から探ってみたのでリンクしておきます。
ichinoseのちょっとした考察でした。

0 hits

【12789】印刷時のダイアログを消したい アズキマン 04/4/14(水) 22:19 質問
【12817】Re:印刷時のダイアログを消したい ichinose 04/4/16(金) 0:40 回答
【12887】Re:印刷時のダイアログを消したい アズキマン 04/4/18(日) 17:27 お礼

68458 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free