• 締切済み

BVA の 「MEキーワド」について

簡単な質問で申し訳ありませんが、どなたか教えてください。 VBEで文をつくるときに「ME」を使うときがあるとおもうのですが、 参考書には「ME!~」とあるのですが、実際、「ME.~」にしないと エラーがでてしまいます。 どのようなときに「!」とつけるのでしょうか?よろしくお願いいたします。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

私も知りたくて、解答が載るのを楽しみにしていましたが あまり載らず残念です。中途半端なのですが、調べたところまで報告します。 あるハンドブックでは「コードが実行されているフォームまたはレポートを参照する。このプロパティはVBAでのみ(後記からこの点間違い?)使用できてすべてのビューで参照可能です。完全修飾のオブジェクト参照より速く参照できます。」とあります。Accessの本で良く使われ、ExcelのVBAではあまり見かけない。 SheetについてはWorksheets("sheet1")を略して、Range()やCells()が書けるので同じような場面で不要だし、Formを使うことも初等的問題例では少ないので解説書でお目にかからないのでしょう。 またForms!職員マスタの!は旧来からの区切りを引き継いでいて、オブジェクト指向表現のXXX.YYYが採り入れられる 以前からの区切り記号ではないでしょうか。それがエクセルのSheet1!A1などに残っていると思う。Sheet1.range("a1")=1 も認められているので、徐々にオブジェクト指向言語のオブジェクト階層を示す「.」に統一されていくのでは と思う。!は区切りとゆうより、その左前の名称がForm名 であることを示す記号であるようです。(この辺は私見) (ExcelのVBAでの例)Me!とMe.のどちらでも動いた。 Private Sub CommandButton1_Click() Me.CommandButton1.Caption = "aaa" End Sub Private Sub UserForm_Click() Me!CommandButton1.Caption = "aaa" End Sub (VBでの例)Me!とMe.のどちらでも動いた。 Private Sub Command1_Click() Me.Command1.Caption = "aaa" End Sub Private Sub Form_Click() Me!Command1.Caption = "bbb" End Sub (AccessのVBA)Me!でないと動かなかった。 Private Sub Form_Click() Me!コマンド0.Caption = "bbb" End Sub Private Sub コマンド0_Click() Me!コマンド0.Caption = "aaa" End Sub

  • Fat01ton
  • ベストアンサー率46% (122/264)
回答No.1

>VBEで文をつくるときに「ME」を使うときがあるとおもうのですが 私が無知なだけだと思うのですが逆に教えてください。 1.どのようなときに【ME】を使うのですか? 2.【MEキワード】とは何ですか?(関数、メゾット) 3.アプリはEXCEL or ACCESS のどちらですか?

関連するQ&A

専門家に質問してみよう