人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBA で コントロール名を変数ににして参照すると「このプロパティまたはメソッドはサポートしていません」と表示されます。

For i = 1 To 10
If Me.Controls("AAA" & cstr(i)).Value = True Then ←ここでエラー


Next

上記の cstr(i) の部分を、直接文字列にすると(例:「"AAA" & "1"」)、エラーになることはありません。

何が問題なのでしょうか?
久しぶりに VBAを使ってみたのですが、以前は問題なく上記のようなことをやっていた記憶があります。
エラーの回避方法はあるでしょうか?


●質問者: 匿名質問者
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 匿名回答1号

エラーの内容から察するに、フォームモジュール以外の場所から呼び出したりしているとか、そういう系じゃないですか?
Me に正しくユーザーフォームが取得できてます?


匿名質問者さんのコメント
ご回答ありがとうございます。 ユーザーフォームの Privateでのモジュールですので他のフォームを参照しているとかそういうことはないと思います。 Dim controlName as string controlName = "AAA" & "1" If Me.Controls(controlName).value = True Than なら上手く行くのです。 Dim controlName as string Dim i as Integer i = 1 controlName = "AAA" & cstr(i) If Me.Controls(controlName).value = True Than だとエラーになってしまいます。 添字の i の数字は、テキストの 1と判断されていないような・・・。

匿名質問者さんのコメント
すみません。 解決しました。 参照しているコントロール名に誤りがありました。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ