dポイントプレゼントキャンペーン実施中!

EXCEL2002sp3です。
実行時はEXCEL自体を非表示にし、印刷時はワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示したいと思います。
Application.Visible = False 実行後、コントロールのあるワークブックをOPENすると、Application.Visible が True となりEXCELが表示されてしまいます。
バーコードのプロパティのVisibleをFalseに設定してから、実行させると、EXCELは表示されないのですが、今度はバーコードが印刷されません。この時バーコードのプロパティのPrintObjectはTrueにしています。
何か間違っているのでしょうか?

A 回答 (1件)

Excelが表示されても、印刷後、直ちに


application.visible=false
で再度、非表示するではいけませんか? これが簡単ですけどね!!

どうしても というならAPIですが・・・。

バーコードコントロールのプロパティのVisibleは、Falseに設定しておいてください。

'=============================================================
Private Declare Function LockWindowUpdate Lib "User32" (ByVal hwndLock As Long) As Long
Private Declare Function GetDesktopWindow Lib "User32" () As Long
Sub 印刷()
  Call LockWindowUpdate(GetDesktopWindow())
  DoEvents
  With Workbooks.Open(ThisWorkbook.Path & "\bk1.xls")
                      ↑バーコードが設定されたブック
   With .Worksheets(1)
     .OLEObjects("BarCodeCtrl1").Visible = True
     .PrintOut
     End With
   .Close False
   End With
  Application.Visible = False
  Call LockWindowUpdate(0)
End Sub

試してみてください。
尚、バーコードコントロールには、いくつも
不具合がありそうですよ!!
    • good
    • 0
この回答へのお礼

土日をはさんだので、お礼と報告が遅くなり申し訳ありませんでした。

今日午前中、ご提示いただいた2つの方法でやってみました。
Application.VisibleがTrueになった直後と、印刷直後にFalseにしました。やはり印刷に1秒くらいかかるようで、その間画面が表示されていました。そこで、APIを使った方法だと、希望通りの動きになりました。バーコードコントロールのVisibleはTrueのままでいけるようです。確かにバーコードコントロールはよくわからないことがありますね。(私だけかもしれませんが)

ひとりで1週間悩んでいました。とても助かりました。ありがとうございます。

お礼日時:2008/07/14 13:57

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!