• ベストアンサー

me.caption

http://oshiete1.goo.ne.jp/kotaeru.php3?q=492261 ラベルを表示したり非表示にしたりしたい の質問をしたものなんですが、なぜ me だとダメなんでしょうか このme は自分(?)を指すのではないのでしょうか?

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

まだ起きてたので、さっきのアドバイスの延長を実例で詳しく書きます。 新規フォームを作成 Label1とメニュー[mnuTest]を作成 以下のコードを、VBに直接コピペしないで、タイプしてみたら少しはつかめるかな? ~[Meなし]バージョン~ Private Sub mnuTest_Click()   Label1.Visible = Not Label1.Visible   If Label1.Visible Then     mnuTest.Caption = "非表示にする"   Else     mnuTest.Caption = "表示する"   End If End Sub ~[Meあり]バージョン~ Private Sub mnuTest_Click()   Me.Label1.Visible = Not Me.Label1.Visible   If Me.Label1.Visible Then     Me.mnuTest.Caption = "非表示にする"   Else     Me.mnuTest.Caption = "表示する"   End If End Sub ~[MeありWith利用]バージョン~ 'ここの掲示板はピリオドが見づらいので、メモ帳などにコピペして、ピリオドの位置を確認しながらタイプしてください。 Private Sub mnuTest_Click()   With Me     .Label1.Visible = Not .Label1.Visible     If .Label1.Visible Then       .mnuTest.Caption = "非表示にする"     Else       .mnuTest.Caption = "表示する"     End If   End With End Sub

hiyoruki
質問者

お礼

ご回答ありがとうございました。

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

Meはこの場合、フォーム自身を返します。 Me.(Meとピリオド) をモジュール内で書くと、フォームのメソッド、プロパティが出る以外に、フォームにLabel1が存在しているなら、Label1が入力候補として出ます。 ※Label1のキャプションを変える方法 Me.Label1.Caption ="hoge" Label1.Caption ="hoge" ※フォームのキャプションを変える方法 Me.Caption ="hoge" Caption ="hoge" Meは省略可能です。 上の二つの例は、フォームモジュールに書いたときだけ有効です。 標準モジュールは、実体を持たないので、Meとやっても指す示す実体を持っていません。 参考までに・・・ クラスでも使用します。派生されたクラスでオブジェクトで、クラスオブジェクト自身が自分のことを指すときも使います。

hiyoruki
質問者

お礼

ご回答ありがとうございました。

関連するQ&A