|
▼正月 さん:
>userformをまたいで配列を渡すのはどうしたらいいのでしょうか?
▼こちらは UserForm1 モジュール
>Private Sub CommandButton1_Click()
> Dim hairetu(3) As Variant
> hairetu(0) = "あ"
> hairetu(1) = "い"
> hairetu(2) = "う"
> unload Me
> userform2.Show
>End Sub
>
▼こちらは UserForm2 モジュール
>Private Sub UserForm_Initialize()
>dim hairetu as variant
>ComboBox1.List = hairetu
>End Sub
↑ UserForm2の UserForm_Initialize() プロシージャのなかで
>dim hairetu as variant
配列を宣言して ComboBox1のリストにセットしようとしてますが、
中身が空なので
>うまくいきません。
標準モジュールに 可変配列を宣言しておき、
UserForm1の2つのCommandButton からその標準モジュールで宣言した
配列に値をセットして UserForm2のComboBox1に渡すか、
以下のように、UserForm1内の処理だけで、UserForm2のComboBox1に
リストのセットまで済ませてしまったらどうでしょう(このばあいは
標準モジュールで 共有配列を宣言する必要はありません)
▼すべてUserForm1 モジュール内で処理する例
Option Explicit
Private Sub CommandButton1_Click()
Dim hairetu(3) As String
hairetu(0) = "あ"
hairetu(1) = "い"
hairetu(2) = "う"
hairetu(3) = "え"
ShowUserform2 hairetu
End Sub
Private Sub CommandButton2_Click()
Dim hairetu(2) As String
hairetu(0) = "か"
hairetu(1) = "き"
hairetu(2) = "く"
ShowUserform2 hairetu
End Sub
Private Sub ShowUserform2(arry() As String)
With UserForm2
.ComboBox1.List = arry
.Show 0
End With
Unload Me
End Sub
|
|