- ベストアンサー
リストボックスの項目に、他のブックのセルの値を設定するには?
EXECL2003でユーザーフォームを作成しているのですが困っています。 リストボックス(またはコンボボックス)の項目の設定に、他のブックのセルの値を使用したいのですがわかりません。 具体的には「単価表.xls」「見積書.xls」と2つのブックがあり、「見積書.xls」にユーザーフォームを作成します。 そのユーザーフォームのリストボックスの項目に「単価表.xls」のセルの値を設定したいのです。 本を見たりWEBを検索しても、ブック内のシートのセルの値を設定する例しか見つけることができません。 何か手がかりでも教えていただければ助かります。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
別のブックでも以下のように参照が可能です。 UserForm1.ListBox1.AddItem Workbooks("単価表.xls").Sheets("単価").Cells(i, 1).Value ただし単価表.xlsが開いていなければなりませんので、単価表.xlsが開いていないことも想定すると次のようなマクロになるかもしれません (「単価表.xls」「見積書.xls」は同じフォルダにあると想定) Sub Macro3() Dim wb As Workbook Dim sw As Boolean Dim i As Integer For Each wb In Workbooks '単価表.xlsが開いているかチェック If wb.Name = "単価表.xls" Then sw = True Exit For End If Next wb If sw = False Then '開いていないときは開く Workbooks.Open Filename:="単価表.xls" End If UserForm1.ListBox1.Clear For i = 1 To 10 'リストボックス項目を追加 UserForm1.ListBox1.AddItem Workbooks("Book2.xls").Sheets("Sheet1").Cells(i, 1).Value Next i UserForm1.Show End Sub
その他の回答 (1)
- x0000x
- ベストアンサー率52% (67/127)
単価表.xlsのSheet1のA2:B10を表示するとして、 以下で表示できます。 ただし、単価表.xlsはOPEN済みの場合です。 ColumnCount=2 ColumnWidth=2cm;3cm RowSource=[単価表.xls]Sheet1!A2:B10 Excel2003で確認。
お礼
早速の回答ありがとうございます。 参考にさせていただきました。
お礼
できました!! ありがとうございました。