Excel実行時に非表示にし、印刷時にはバーコードコントロールを表示したい方法

このQ&Aのポイント
  • Excel2002sp3を利用しています。実行時はEXCEL自体を非表示にし、印刷時はワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示したいと思います。しかし、実行後にコントロールを持つワークブックを開くと、EXCELが表示されてしまいます。
  • バーコードのプロパティのVisibleをFalseに設定すると、EXCELは表示されなくなりますが、バーコードが印刷されません。PrintObjectの設定はTrueにしています。どこが間違っているでしょうか?
  • Excel2002sp3での問題です。実行時にはEXCEL自体を非表示にし、印刷時にはワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示させたいと考えています。しかし、実行後にコントロールを持つワークブックを開くと、EXCELが表示されてしまいます。バーコードのプロパティのVisibleをFalseに設定すると、EXCELは非表示になりますが、バーコードが印刷されなくなります。PrintObjectの設定はTrueになっています。どのようにすれば解決できるでしょうか?
回答を見る
  • ベストアンサー

実行時はEXCEL自体を非表示にし、印刷時はワークシートのコントロール(Microsoftバーコードコントロール9.0)を表示したい

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

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

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.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 試してみてください。 尚、バーコードコントロールには、いくつも 不具合がありそうですよ!!

minigeso
質問者

お礼

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

関連するQ&A

  • 【Excel VBA】ワークシートの表示

    Excel 2013で以下のコードを実行し、 非表示にしているワークシートの表示を試みましたが、 上手く機能しませんでした。 コード自体にエラーはなく、該当シートのVisibleプロパティを確認すると xlSheetVisibleに変わっているのですが、実際のシートは非表示のままでした。 どう対処すればワークシートを表示することが可能でしょうか? ==================== If actsht = tmp(i) Then If Sheets(元データ).Visible = False Then Sheets(元データ).Visible = True End If End If ====================

  • マクロ実行時、非表示シートを表示させたくない

    ファイル[testBOOK]の中に(sheet1)(sheet2)があり (sheet2)は非表示,ブック保護されています。 (sheet1)にあるマクロAAボタンで ・[図A]を非表示 ・[図B]を表示 ・マクロBBを実行 するようになっています。 --------------------------------------- Sub AA() '≪非表示≫ ActiveSheet.Shapes("図A").Visible = False '≪表示≫ ActiveSheet.Shapes("図B").Visible = True 'ブック保護解除 ActiveWorkbook.Unprotect 'マクロBB実行 Sheets("sheet2").Visible = True Sheets("sheet2").Select Application.Run "testBook.xlsm!BB" ActiveWindow.SelectedSheets.Visible = False 'ブック保護 ActiveWorkbook.Protect End Sub ---------------------------------------- マクロBBとは[sheet2]の中にある ・[図A]を非表示 ・[図B]を表示 です。 上記のマクロを実行させると(sheet2)が瞬間的に表示されてしまうのですが、 これを表示させないようにすることはできないでしょうか?

  • Delphi:コントロールの追加・削除

    アプリケーション実行中にコントロールの追加はできるのでしょうか? それともビジブルをfalseにしておいて、実行中にtrueにするというのでは、どうも追いつけないので。

  • Excel VBA 自身を非表示にした時の解除方法

    Excel2010でVBAのコードデバッグ中に Excelアプリケーションのウインドウの中に Excelブック(シート)が表示されなくなってしまったため 一度、Excelアプリケーションを終了して 再びデバッグ中のExcelブックを開いたのですが それでも Excelアプリケーションのウインドウだけが表示されて、 開きたいExcelブック(シート)は表示されません。 おそらく、VBAのコードの中の Set wb = Workbooks.Open(fileName:=filePass, ReadOnly:=True) ActiveWindow.Visible = False の ActiveWindow.Visible = False のコードが 自分自身を非表示にしてしまったのではないかと思われます。 イミディエイトウィンドウに ActiveWindow.Visible = True と入力してもウインドウが表示されていないので エラーになります。 どのようにすれば非表示の状態から 表示の状態に戻すことができるのでしょうか。

  • エクセルで質問です。

    エクセルで質問です。 現在マクロを使って簡単な計算表を作っているのですが、エクセルを終了する時にフォームコントロールボタンを使って終了というカタチにしています。(下記参照) Sub 終了処理() Application.DisplayFullScreen = False With ActiveWindow .DisplayHorizontalScrollBar = True .DisplayVerticalScrollBar = True .DisplayWorkbookTabs = True .DisplayGridlines = True .DisplayHeadings = True End With Toolbars(1).Visible = True Toolbars(2).Visible = True Toolbars(5).Visible = True Toolbars(7).Visible = True Toolbars(9).Visible = True Application.DisplayFormulaBar = True Application.DisplayStatusBar = True Application.DisplayAlerts = False Application.Quit End Sub ここまではうまく出来たのですが、終わるときに右上にある×ボタンを使って終わる事が出来ないようにしたい!っていうのが今回の質問です。 皆様のお力をお借りしたいと思いますので宜しくお願い致します。 ちなみに、エクセルを開いた時はフルスクリーンになるようにしています。 trueのところがfalseにしています。

  • Excel2003 シートのコントロールが動かない

    Windows7、Excel2003です。 2月まで正常に動いていたBookのシートに貼り付けたコマンドボタンが押せません。また、新しくコントロールを配置できません。「オブジェクトを挿入できません」のエラーになる。 1.12月11日のKB更新でこの症状が出るということですが、それは関係ないようです。3月初めまでは動いていたし、念のため、.exdの削除と該当KBを削除しましたが症状は変わりません。 2.同じPCにOffice2000/2003/2010がインストールされています。このBookをExcel2010で互換モードで実行すると正常に動作します。 3.コントロールのないvba多用のBookは、このExcel2003でも正常に動きます。 4.別のPC、Windows8.1、Excel2013での互換モードでもこのBookは正常に動きます。 5.Excel2003でのこのBookのコントロールのオブジェクト指定が変です。たとえば、CommadButton1のプロパティで、CommadButton1がCommandButtonではなくWorkSheetになっています。 6.また、CommadButton1にかかわるvbaコードで、Sheet1などのオブジェクト定義がエラーになります。 2003はサポート外というのは別にして、 なにか正常に戻す情報でもあれば教えてください。よろしくお願いします。

  • EXCEL の auto_open で開けない

    EXCEL の auto_open で Application.Visible = True とすべきところを 間違えて Application.Visible = False してしまいました これだと見えなくなってしまうので なんとか表示させる方法があったら教えてください

  • デザイン時のVisible=Falseは実行時に変更できない?

    VB2008です。 フォームデザイン時に、コントロールのVisibleをFalseに設定していると、実行時にTrueに設定してもコントロールが見えません。(実行時エラーも出ません。) 私の環境では、ほぼすべてのコントロールが同じ挙動をします。 もちろん、デザイン時にVisibleをTrueにしておいて、実行時にコードでFalseにすると見えなくなりますし、Trueを与えてやると再度見えるようになります。 これは、言語の仕様なのでしょうか。

  • ExcelVBA フォーム表示中にワークシートの更新

    お世話になります。 プロパティがあったかどうかが探せなくての質問です。 ユーザフォーム表示中に、Excelブック(ワークシート)の操作ができるようにしたいのですが、そういったプロパティ?コントロールはどこでしたらいいのでしょうか? ご存知の方、教えてください。 Excel2000

  • エクセルで、シートを非表示のままマクロを実行するには?

    エクセル初心者です。 Sheet1で、マクロの実行ボタンがあり、Sheet2で、データを編集して、 Sheet1に結果の一覧を表示させるマクロなのですが、 Sheet2は非表示のままマクロを実行したいのですが、うまくいかず、 Sheet2を表示して、実行するとうまくいくため、 一時的にシートを表示させるようにしてみたのですが、 Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Insert Shift:=xlDown で、アプリケーション定義・オブジェクト定義エラーになります。 どなたかご指南下さい。 Private Sub EDITSLINF() Dim rowCnt As Long Application.ScreenUpdating = False Worksheets("製造記録一覧 (edit1)").Visible = True  Sheets("Sheet2").Range("AB2:AK300").ClearContents '追加レコード抽出&コピー&ペースト Sheets("Sheet2").Range("Q1:Z300").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _ "AP1:AP2"), CopyToRange:=Sheets("Sheet2").Range("AB1:AK1"), Unique:=False '既存レコードコピー&ペースト rowCnt = Sheets("Sheet2").Range("O1") Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Insert Shift:=xlDown Sheets("Sheet2").Range(Cells(2, 28), Cells(rowCnt, 37)).Interior.ColorIndex = xlNone Sheets("Sheet2").Range(Cells(2, 2), Cells(rowCnt, 11)).Copy Sheets("Sheet2").Range("AB2").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False Worksheets("Sheet2").Visible = False 'メインシートへコピー   Application.CutCopyMode = False Sheets("Sheet2").Range("AB2:AJ300").Copy Sheets("Sheet1").Range("K4").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _ xlNone, SkipBlanks:=False, Transpose:=False End Sub

専門家に質問してみよう