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

http://oshiete1.goo.ne.jp/kotaeru.php3?q=492261

ラベルを表示したり非表示にしたりしたい
の質問をしたものなんですが、なぜ me だとダメなんでしょうか
このme は自分(?)を指すのではないのでしょうか?

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/03/14 00:59

Meはこの場合、フォーム自身を返します。


Me.(Meとピリオド)
をモジュール内で書くと、フォームのメソッド、プロパティが出る以外に、フォームにLabel1が存在しているなら、Label1が入力候補として出ます。

※Label1のキャプションを変える方法
Me.Label1.Caption ="hoge"
Label1.Caption ="hoge"

※フォームのキャプションを変える方法
Me.Caption ="hoge"
Caption ="hoge"

Meは省略可能です。

上の二つの例は、フォームモジュールに書いたときだけ有効です。
標準モジュールは、実体を持たないので、Meとやっても指す示す実体を持っていません。


参考までに・・・
クラスでも使用します。派生されたクラスでオブジェクトで、クラスオブジェクト自身が自分のことを指すときも使います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2003/03/14 00:59

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