| 
    
     |  | ▼正月 さん: >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
 
 
 |  |