• 締切済み

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

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

みんなの回答

回答No.1

2008は使ったこと無いけど、…Visibleは「いつ」変更してますか? FormのLoadイベントなんかだと、Loadイベントの処理が「終了した直後」に Formが初期化されるので、Load中に変更を加えようとしても無駄になりますよ。 (たぶん、New(コンストラクタ?)でやっても同じ事だと思います) もし そうであれば、 ・FormのShownイベントに記述する ・Loadイベント中でMe.Showを実行し、その後でVisibleを変更 のいずれかで変更可能かと思います。 的外れだったらすみません。

xiaolong_goo
質問者

お礼

お返事ありがとうございます。 Load中の変更は無駄ということは、言語の仕様ということですね。 Shownなどで検討してみます。

関連するQ&A

  • visibleの機能について

    VBで「Label.visible」でFalseが非表示、Trueが表示だと思うのですが、Trueで非表示の場合があります。 プログラムではTrueにしたりFalseにしたりします。もしかしてvisibleの設定がおかしくなったのかなと思って実行中にvisibleの内容を表示してみてみましたが、Trueで非表示になる場合があります。必ず非表示になると言うわけではないので困っています。 原因がわかる方、もしかしてここでは?と言う方でも結構です。 宜しくお願い致します。

  • 実行時に現れるフォームの変更の仕方について

    掲題の件について質問なんですが、 複数のフォームを作った場合、 実行時に最初に現れるフォームを変更するにはどうしたらよいのでしょうか? 最初に作ったフォームの初期値のVisibleをfalseにして、後から作ったフォームの同初期値をtrueにしたところフォームが現れなくなってしまいました。 よろしくお願いします。

  • Label2.visible=false

    任意の関数式を入れるとグラフを描くプログラムを作りました。表示するのに時間がかかる(といっても1秒程度ですが)ので「計算中!」と赤で表示させ、グラフが描き終わると消したいと思い、グラフ開始時にLabel2.Visible=True、終了時にLabel2.Visible=Falseを付けましたが、思惑通りには行きません。何故でしょう。おわかりになる方、教えてください。

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

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

  • ExcelのVisibleについて

    VB6.0でデータベースから取得したデータをExcelに 出力するプログラムを作っています。 ExcelのVisibleをFalseに設定して出力処理を行って いるのですが、処理中に他のExcelを起動させると Visible=Falseの設定が解除されて処理中の動作が 見えてしまいます。 Excelのアプリケーションに対してVisible=Falseに 設定しているのが原因ではと思って、ブックに対して 下記のように設定しても駄目でした。 WorkBooks("XXX.xls").Windows(1).Visible = False 出力するテーブルのフィールドが多いため、10分近く処理に時間がかかります。 その間に他のExcelを立ち上げても、処理中のExcelのVisible=Falseの設定が解除されないようにする方法はないでしょうか?

  • 実行時エラー 29068

    いろんなプロシージャーを経て、 DoCmd.Save acForm, "フォーム1" と言うコードに差し掛かった時、 実行時エラー 29068 この操作を 完了することができません。 コードを中断し、再度実行してください。 と言うエラーが発生します。 前のコードでフォームのコントロールの削除をしているのが原因でしょうか?

  • VisibleとOpenFormは意味が同じ?

    データベースにフォームが1つあります。 標準モジュールに Sub Visible() Form_フォーム1.Visible = True End Sub Sub OpenForm() DoCmd.OpenForm "フォーム1" End Sub を作り、どちらも実行させても同じ動きをします。(フォームが開きます) この二つは同じ動きをすると思っていいのでしょうか?

  • Visibleは使えないのでしょうか?

    オフィス2010です。 アクセスvbaでエクセルのデータを操作したいので Sub test() Set cnEx = CreateObject("ADODB.Connection") With cnEx .Provider = "Microsoft.ACE.OLEDB.12.0" .Properties("Extended Properties") = "Excel 12.0" .Properties("Data Source") = "C:\Users\test.xlsm" .Open .Visible = True 'エラーになる End With End Sub と言うコードを作ったのですが .Visible = Trueで 実行時エラー 446 オブジェクトは名前付き引数をサポートしていません。 と言うエラーが発生します。 Visibleは使えないのでしょうか?

  • フォームを開いた時にVBAでデザイン変更の許可の設

    フォームを開いた時にVBAでデザイン変更の許可の設定が出来ない(access2003) デザインビューで手作業で操作するのではなく VBAで値を設定したいのですが Private Sub Form_Open(Cancel As Integer) Me.AllowDesignChanges = False End Sub をすると ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・  実行時エラー '2448':  このオブジェクトに値を代入することはできません。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ と言うエラーが出てしまいます。 標準モジュールで Sub test() Form_フォーム1.AllowDesignChanges = False End Sub としても同じエラーが出ます。 フォームのデザイン変更の許可は デザインビューで手作業で操作するしかないのでしょうか?

  • 実行時エラー7「メモリが不足しています」

    アクセス2010なのですが たまにですが、なぜこんなところでエラーが発生するの!?ってところで、 実行時エラー7が発生します。 今も発生しました。 With Forms(strFormName) .Lb_No.Visible = False .Lb_ID.Visible = False End With の.Visible = Falseの部分です。 いつもはこんなところでエラーにならないのに、たまにここでエラーになります。 そんな複雑なコードではないと思います。 Visible = Falseするのに、大量のメモリを消費するのでしょうか? OSはwin7です。

専門家に質問してみよう