- ベストアンサー
TextBoxコントロールを引数として渡すには?
Public Sub MPlus(txt as TextBox) End Sub という関数があって、この関数に引数としてTextBoxコントロールを渡したいのですが、 Call MPlus(txt_MHantei)や、Call MPlus(Me.txt_MHantei)では、 TextBox.Textの値が引数として渡ってしまい型が違うというエラーが出てしまいます。 どうしたらよいのでしょうか?教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 > Accessではなく、Excel2002です。 完全に思い込みで回答しました(汗) 大変失礼致しました。 さて、Excel VBAは殆ど触らないのですが・・・(汗) やってみたところ、ご質問の現象が再現できました。 どうやら、ExcelのSheetでは、「!」は対応していないようです。 ともあれ、解決策ですが、以下のようにしてみてください。 【現在】 Public Sub MPlus(txt As TextBox) 【修正】 Public Sub MPlus(txt As MSForms.TextBox)
その他の回答 (1)
- DexMachina
- ベストアンサー率73% (1287/1744)
こちらの環境(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シート上にあるテキストボックスコントロールを、引数として渡したいのです。
お礼
回答ありがとうございます。 さっそく試してみたいと思います。