| 
    
     |  | 以前、同じbookのSheet間のデータをリストとして取り込み、複数列を表示させて、選択すると、他の複数のtextboxに該当データを取り込むVBAを教えていただきましたが、今回は、同じフォルダ内の異なるbook間でのデータ取り込みのVBAを教えてください。前回ご教示いただいたVBAを修正してみたのですがうまくいきません。ご教示ください。 
 1.同じフォルダ「給与管理」内のbook1のsheet"入力票"のuserformのcombobox1のリストに、book2のsheet"給与マスター"のrange("a3").currentregion.selectした範囲から項目行を除いた範囲をリストとし、項目も表示させたい。
 
 2.book2は非表示、非activeで、Combobox1の処理終了とともに、保存しないで閉じるようにしたい。
 
 1.と2.を満たすVBAとするには、以下のVBAをどのように修正・加筆すればいいのでしょうか?
 
 Private Sub Combobox1_Click()
 With Me.ComboBox1
 If .ListIndex < 0 Then Exit Sub
 Sheets("入力票").range("C5").Value = .List(.ListIndex, 1)
 Sheets("入力票").range("D5").Value = .List(.ListIndex, 2)
 Sheets("入力票").range("E5").Value = .List(.ListIndex, 3)
 ・
 ・
 ・
 Sheets("入力票").range("K7").Value = .List(.ListIndex, 1)
 Sheets("入力票").range("L7").Value = .List(.ListIndex, 2)
 Sheets("入力票").range("M7").Value = .List(.ListIndex, 3)
 
 End With
 End Sub
 
 Private Sub UserForm_Initialize()
 ・
 ・(他のinitializeに関係する記述があります)
 
 Dim r As Range
 Set r = workbooks("book2.xls").Worksheets("給与マスター").Range("A3").currentregion.select
 
 With Me.Combobox1
 .RowSource = r.Address(External:=True)
 .ColumnHeads = True
 .TextColumn = 1   '表示する列を指定する。
 .BoundColumn = 2  'Valueに返す列指定する。この場合はC列表示
 .ColumnCount = 4
 .ColumnWidths = "50;40;30;20"
 End With
 .
 .(他のinitializeに関係する記述があります)
 .
 End Sub
 
 
 |  |