Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


10914 / 13646 ツリー ←次へ | 前へ→

【16848】オブジェクトを変数で扱う方法 両津 04/8/11(水) 19:47 質問[未読]
【16850】Re:オブジェクトを変数で扱う方法 ichinose 04/8/11(水) 20:41 回答[未読]
【16855】Re:オブジェクトを変数で扱う方法 両津 04/8/12(木) 1:45 お礼[未読]
【19224】Re:オブジェクトを変数で扱う方法 みふぃー 04/10/25(月) 23:03 お礼[未読]

【16848】オブジェクトを変数で扱う方法
質問  両津 E-MAIL  - 04/8/11(水) 19:47 -

引用なし
パスワード
   はじめまして。いきなり質問させていただきます。
commandbutton1,commandbutton2,commandbutton3があったとします。

dim xxx as integer
commandbutton1.Visible=false
commandbutton2.Visible=false
commandbutton3.Visible=false
Randmize
xxx=Rnd(Int * 3)
xxx=xxx+1
commandbutton xxx.Visible=true

このように(上の場合、エラーが起きます)オブジェクトの名前に変数をいれて
プロパティを変更することは可能ですか?
無理ならifを使うしかないんですが。。。
よろしくお願いします!

【16850】Re:オブジェクトを変数で扱う方法
回答  ichinose  - 04/8/11(水) 20:41 -

引用なし
パスワード
   ▼両津 さん:
こんばんは。

>はじめまして。いきなり質問させていただきます。
>commandbutton1,commandbutton2,commandbutton3があったとします。
下のコードを見ただけでははっきりとこのコマンドボタンがどこに
貼り付けられたコマンドボタンか判断が付きませんでした。
(ユーザーフォームに貼り付けたボタンか、シートに貼り付けたそれか・・)
これによって、記述が違ってきてしまいます。
次回からは、この辺の説明をお願いします。

ユーザーフォームのものだと思って・・・。


>
Dim xxx As Integer
For idx = 1 To 3
 Controls("commandbutton" & idx).Visible = False
 Next idx

Randomize
xxx = Int(Rnd() * 3)+1 'ここもちょっと違ってた!!
Controls("commandbutton" & xxx).Visible = True

シートに貼り付けてあるコマンドボタンの場合は、

ControlsをOleobjectsに変えてください。
但し、ControlsもOleobjectsもこのコードを記述するモジュールによっては
親オブジェクトの指定が必要ですよ。

【16855】Re:オブジェクトを変数で扱う方法
お礼  両津 E-MAIL  - 04/8/12(木) 1:45 -

引用なし
パスワード
   すいません。こちらが求めていたのはユーザーフォームでした。
詳しい解説と指摘、どうもありがとうございます。
これで解決いたしました!
ミスがあってスミマセンでした。

【19224】Re:オブジェクトを変数で扱う方法
お礼  みふぃー  - 04/10/25(月) 23:03 -

引用なし
パスワード
   はじめまして。
私もオブジェクトを変数で扱う方法を探していた者です。

いや、ほんと、助かりました。

これで、私の悩みも半分なくなったようなもんです。

10914 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free