Excel VBA質問箱 IV

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

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


13022 / 13644 ツリー ←次へ | 前へ→

【7406】UserFormへの引数 グレミー 03/9/4(木) 12:28 質問
【7408】Re:UserFormへの引数 INA 03/9/4(木) 12:31 回答
【7410】Re:UserFormへの引数 グレミー 03/9/4(木) 12:59 質問
【7411】Re:UserFormへの引数 INA 03/9/4(木) 13:07 回答
【7413】Re:UserFormへの引数 グレミー 03/9/4(木) 13:16 質問
【7414】Re:UserFormへの引数 INA 03/9/4(木) 13:22 回答
【7415】Re:UserFormへの引数 グレミー 03/9/4(木) 13:25 お礼

【7406】UserFormへの引数
質問  グレミー  - 03/9/4(木) 12:28 -

引用なし
パスワード
   こんにちわ。

プログラムの途中で,UserFormを表示させて
ある計算の指定をオプションボタンで選択させて,
次の処理に進みたいのですが,
UserFormのコードがPrivate Subなので,
引数をもってくることができません。
この作業はもともと無理なのでしょうか。

例えば,
Sub Reidai()
Dim i as Integer,X(5) as Double
 For i=1 to 5
  UserForm(i,X).Show 'ユーザーフォーム表示
 Next i
End Sub

Private Sub CommandButton1_Click(i as Integer,X() as Double)
 If UseForm.OptionButton1 = True Then
  X(i) = True
 End If
End Sub

のような感じでできそうな気がしたんですが無理でした。

アドバイスをよろしくお願い致します。

【7408】Re:UserFormへの引数
回答  INA  - 03/9/4(木) 12:31 -

引用なし
パスワード
   具体的にはどのような動作をさせたいのでしょうか?

【7410】Re:UserFormへの引数
質問  グレミー  - 03/9/4(木) 12:59 -

引用なし
パスワード
   >具体的にはどのような動作をさせたいのでしょうか?

お返事ありがとうございます。

具体的にどういうことをするのかというと,
行列の掛け算の処理です。
例えば,5つの行列であれば,
その5つがどういう種類の行列なのか(4種類)を
UserFormで指定したいと考えております。
ですので5回UserFormを表示させることになります。
そのときに,何番目の行列がどの種類なのかという情報を
配列として取得しようかなと思っているのですが…
InputBoxで1〜4で選択してもらえばすむ話なのですが,
UserFormを使ってできないものかと思いまして…

ちょっとわかりづらいでしょうか?
途中までですが、プログラムを表示した方がよいでしょうか?

よろしくお願い致します。

【7411】Re:UserFormへの引数
回答  INA  - 03/9/4(木) 13:07 -

引用なし
パスワード
   グローバル変数(public)を使うか、値をセルに書き込んでおく方法では
問題がありますでしょうか?

【7413】Re:UserFormへの引数
質問  グレミー  - 03/9/4(木) 13:16 -

引用なし
パスワード
   >グローバル変数(public)を使うか、値をセルに書き込んでおく方法では
>問題がありますでしょうか?

お返事ありがとうございます。
PrivateをPublicに変えて試してみましたが、
上手くいかないみたいです。

多分引数を設定する箇所に問題があるような気がします。
Sub Reidai()
Dim i as Integer,X(5) as Double
 For i=1 to 5
  UserForm(i,X).Show '←多分ここが問題のような気がします。
 Next i
End Sub

Public Sub CommandButton1_Click(i as Integer,X() as Double)
                '↑多分ここが問題のような気がします。
 If UseForm.OptionButton1 = True Then
  X(i) = True
 End If
End Sub

また色々試してみます。
どうもありがとうございました。

【7414】Re:UserFormへの引数
回答  INA  - 03/9/4(木) 13:22 -

引用なし
パスワード
   グローバル変数は、標準モジュールで宣言しておく必要があります。

http://www2.odn.ne.jp/yasuki/vb/vb05/vb022.htm

【7415】Re:UserFormへの引数
お礼  グレミー  - 03/9/4(木) 13:25 -

引用なし
パスワード
   ▼INA さん:
>グローバル変数は、標準モジュールで宣言しておく必要があります。
>
>http://www2.odn.ne.jp/yasuki/vb/vb05/vb022.htm

ご丁寧なアドバイスどうもありがとうございました。

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