• ベストアンサー

visibleの機能について

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

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

  • ベストアンサー
回答No.2

>バージョンはVB6.0です。 だけでは詳しい情報になりません。 OS や VB6.0 のサービスパックは何が当たっているのかとか おおよそどのようなプログラムを書いているのかとか? 状況が詳しく解らないと下記の事位しかアドバイスできません。 (本来ありえない事が起こっているのですから) TextBox に表示した場合ならどうなるのでしょうか True に設定した後の行にでもブレークポイントを設けて試してみるとか? そのラベルはどこに張り付けていますか、張り付けているところが Visible = False に なっていたりしていませんか? 下記のようにしてどの時点の表示ができていないのかを確認するとか? (適切な場所でLabel1.Visible = True が書かれているのかも確認する意味で) Label1.Visible = True DoEvents Beep Debug.Print Label1.Visible

GONBEBW
質問者

お礼

ご回答、ありがとうございます。 結論から言いますと私のミスです。 言い訳になると思いますがいろいろなモジュールを通っていたので追いかけるのが間違っていました。VBは他人が作ったので・・・。ある条件で~.Captionがクリアされていました。滅多にこの条件のところを通らないので気がつきませんでした。 本当に申し訳ありませんでした。

その他の回答 (1)

回答No.1

VB のバージョンや詳しい状況が書かれていないので確認のために下記のように False や True に設定した後に VB6.0 なら DoEvents の1行を書いて見て試して見て下さい Label1.Visible = True '  False ’又は、True DoEvents 'この1文を挿入してみる

GONBEBW
質問者

お礼

ご回答、ありがとうございます。 バージョンはVB6.0です。 回答記載のとおり行いましたが表示できませんでした。 今後とも宜しくお願い致します。

関連するQ&A

  • Label2.visible=false

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

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

    VB2008です。 フォームデザイン時に、コントロールのVisibleをFalseに設定していると、実行時にTrueに設定してもコントロールが見えません。(実行時エラーも出ません。) 私の環境では、ほぼすべてのコントロールが同じ挙動をします。 もちろん、デザイン時にVisibleをTrueにしておいて、実行時にコードでFalseにすると見えなくなりますし、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の設定が解除されないようにする方法はないでしょうか?

  • VBで他のツール(エクセルなど)を表示する方法

    マシンをログオフした状態でエクセルを表示(VisibleをTrue)にすることは可能でしょうか? 現状、作成したプログラムではVisibleをTrueにして エクセルを立ち上げても、Falseになっています。 尚、VBで作成したEXEはタスクにより実行されます。

  • Excel2003のボタンにVisibleがない。

    Excel2003です。 Sheetへデフォルト設定のCommandButtonをコピーで100個ほど並べました。 すると、いくつかのボタンはプロパティにVisibleがありません。 ボタンは見えているので Visible=True となっているようですが プロパティにVisibleが無いのです。 ソースからVisible=falseを設定すると、OLEなんたらかんたらのエラーが出ます。 プロパティVisibleが無いボタンを削除して、Visibleがあるボタンをコピーして 同じ場所へ貼り付けると、やはりVisibleが消えます。 どう頑張っても解決できなく悩んでいます。 OS:XP OSを再起動しても解決できませんでした。 そこで、解決方法をご存知の方教えていただけないでしょうか。 ファイルは会社にあるので、いまここでテストすることはできません。 何とぞ宜しくお願い致します。

  • ループの後にTrueになる不思議

    下記のコードを実行してみます。 Private Sub Command1_Click() ProgressBar1.Visible = True Label1.Visible = True ProgressBar1.Max = Val(Text1.Text) For i = 1 To Val(Text1.Text) Text1.Text = i ProgressBar1.Value = i Next i MsgBox "終了しました。" ProgressBar1.Visible = False Label1.Visible = False End Sub 「ProgressBar1」はループに入る前に「Visible = True」になります。 「Label1」はループ終了後に「Visible = True」になります。 「Text1.Text = i」はループ終了後に表示されます。 本来は、「Label1」はループに入る前に「Visible = True」にして、「Text1.Text = i」をループ中に表示させたいのですが、できません。 どこかコードが間違っているのでしょうか。

  • C++ Builder でVisibleとshow

    こんにちは、王次郎です。 C++ Builder でコンポーネントの表示/非表示を切り替えるときに メンバ関数の Show()/Hide() を呼ぶ方法と プロパティの Visible を True/False にする方法がありますが、 どう違うのでしょうか?どちらが良いのでしょうか? よろしくお願いします。

  • 単純な質問で恐縮です。

    単純な質問で恐縮です。 コマンドボタン1を押したら、ラベル1が消えて、ラベル2が表示させるようにしたいのですが動きません。 Private Sub CommandButton1_Click() Label1.Visible = False Label2.Visible = True end sub どうしてでしょうか?

  • visibleプロパティの使い方

    matyuといいます、毎度の初歩的質問ですがよろしくお願い致します。 Sub HideRows() Worksheets("Sheet2").Rows("5:7").Visible = xlSheetHidden End Sub これが成立たない理由がわかりません。 「~Hidden = True」と同じ意味じゃないんでしょうか? こういった場合にできないことを裏付ける調べ方を教えていただけますでしょうか ※例えばBisial basic リファレンスでの調べ方など visible~は

  • labelを前面に出したい

    vb6で座標平面を作成するプログラムを作っています。lineやlabelを配列で設置しましたが、 lineが前面に出てしまい、とても見づらいものになってしまいました。labelを前面に出すにはどうしたらよいでしょうか。 (1)lineコントロールを配置し、index=0 (2)labelコントロールを配置し、index=0 (3)(1)と(2)が重なるようにします(label1(0)が前面に出ています)。 (4)以下を実行します Private Sub Form_Load() Form1.ScaleMode = 3 Label1(0).FontSize = 15 Label1(0).FontBold = True Line1(0).BorderWidth = 2 Line1(0).BorderColor = &H80000005 Load Line1(1) With Line1(1) .X1 = 100 .X2 = 100 .Y1 = 0 .Y2 = 200 .Visible = True End With Load Label1(1) With Label1(1) .Left = 98 .Top = 80 .Visible = True End With End Sub (5)label(1)が背面になります。

専門家に質問してみよう