プロが教える店舗&オフィスのセキュリティ対策術

Public Sub MPlus(txt as TextBox)
End Sub
という関数があって、この関数に引数としてTextBoxコントロールを渡したいのですが、
Call MPlus(txt_MHantei)や、Call MPlus(Me.txt_MHantei)では、
TextBox.Textの値が引数として渡ってしまい型が違うというエラーが出てしまいます。
どうしたらよいのでしょうか?教えてください。

A 回答 (2件)

No.1です。



> Accessではなく、Excel2002です。

完全に思い込みで回答しました(汗)
大変失礼致しました。

さて、Excel VBAは殆ど触らないのですが・・・(汗)

やってみたところ、ご質問の現象が再現できました。
どうやら、ExcelのSheetでは、「!」は対応していないようです。


ともあれ、解決策ですが、以下のようにしてみてください。

【現在】
Public Sub MPlus(txt As TextBox)
【修正】
Public Sub MPlus(txt As MSForms.TextBox)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
さっそく試してみたいと思います。

お礼日時:2009/01/22 15:49

こちらの環境(XP Pro/Access2003)で同様のものを


作成して確認した限りでは、型不一致エラーは
発生しませんでした。

推測になりますが、テキストボックスと同名の変数が
宣言されていないでしょうか。
(Option Explicitが宣言されていても、コントロールと
 変数での名前重複はエラーになりません)

試しに、「Call MPlus(txt_MHantei)」の代わりに、
「Call MPlus(Me!txt_MHantei)」としてみてください。
(コントロール名と変数名が重複する場合、「.」では変数
 やプロパティが優先ますが、「!」ではコントロールが
 参照されますので)


参考(以前の回答):
http://oshiete1.goo.ne.jp/qa4462597.html

この回答への補足

説明が足りなかったようで、すみません。
Accessではなく、Excel2002です。
テキストボックスと同名の変数は宣言されていません。

Call MPlus(Me!txt_MHantei)で、試してみたのですが、
「オブジェクトは、このプロパティまたはメソッドをサポートしていません」というエラーがでました。

Excelシート上にあるテキストボックスコントロールを、引数として渡したいのです。

補足日時:2009/01/22 13:15
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A