過去ログ

                                Page     547
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ListBox の RowSource の値  だーちむ 03/1/14(火) 14:20
   ┗Re:ListBox の RowSource の値  ichinose 03/1/15(水) 11:35
      ┗Re:ListBox の RowSource の値  だーちむ 03/1/15(水) 13:53

 ───────────────────────────────────────
 ■題名 : ListBox の RowSource の値
 ■名前 : だーちむ
 ■日付 : 03/1/14(火) 14:20
 -------------------------------------------------------------------------
   はじめまして。

基本的な質問で大変申し訳無いのですが、
フォームにリストボックスを作ろうとしております。
リストボックスに表示させる選択肢を、別のbookのセルから
とって来たいのですが、
例えば、RowSorceの値を
'C:\[a.xls]sheet1'!a1:a2
等とすると、エラーになってしまいます。
a.xlsを開いた状態であれば、
[a.xls]sheet1!a1:a2
で問題無く表示されるのですが...。

ちなみにパスが間違っているとか、
そういうことはありません。
おわかりの方がいらっしゃいましたら、
どうぞ宜しくお願い致します。
 ───────────────────────────────────────  ■題名 : Re:ListBox の RowSource の値  ■名前 : ichinose  ■日付 : 03/1/15(水) 11:35  -------------------------------------------------------------------------
   ▼だーちむ さん:
こんにちは。
>基本的な質問で大変申し訳無いのですが、
>フォームにリストボックスを作ろうとしております。
>リストボックスに表示させる選択肢を、別のbookのセルから
>とって来たいのですが、
>例えば、RowSorceの値を
>'C:\[a.xls]sheet1'!a1:a2
>等とすると、エラーになってしまいます。
これ、直接の指定は無理みたいですね。
>a.xlsを開いた状態であれば、
>[a.xls]sheet1!a1:a2
>で問題無く表示されるのですが...。
一度、マクロを含むブックにデータを読み込んでから、そのセル範囲を指定する方法では
いけませんか?例ですが、
'===================================================
Sub test()
  With ThisWorkbook.Worksheets(1)
   .Range("a1:a2").Formula = "='C:\[a.xls]sheet1'!a1"
   .Range("a1:a2") = .Range("a1:a2").Value
   End With
  Load UserForm1
  With UserForm1
   .ListBox1.RowSource = "=sheet1!a1:a2"
   .Show
   End With
  ThisWorkbook.Worksheets(1).Range("a1:a2").Value = ""
End Sub
 ───────────────────────────────────────  ■題名 : Re:ListBox の RowSource の値  ■名前 : だーちむ  ■日付 : 03/1/15(水) 13:53  -------------------------------------------------------------------------
   ichinoseさん、お世話様です。

▼ichinose さん:
>>フォームにリストボックスを作ろうとしております。
>>リストボックスに表示させる選択肢を、別のbookのセルから
>>とって来たいのですが、
>>例えば、RowSorceの値を
>>'C:\[a.xls]sheet1'!a1:a2
>>等とすると、エラーになってしまいます。
>これ、直接の指定は無理みたいですね。
やっぱりそうなんですね...。
>>a.xlsを開いた状態であれば、
>>[a.xls]sheet1!a1:a2
>>で問題無く表示されるのですが...。
>一度、マクロを含むブックにデータを読み込んでから、そのセル範囲を指定する方法では
>いけませんか?例ですが、
>'===================================================
>Sub test()
>  With ThisWorkbook.Worksheets(1)
>   .Range("a1:a2").Formula = "='C:\[a.xls]sheet1'!a1"
>   .Range("a1:a2") = .Range("a1:a2").Value
>   End With
>  Load UserForm1
>  With UserForm1
>   .ListBox1.RowSource = "=sheet1!a1:a2"
>   .Show
>   End With
>  ThisWorkbook.Worksheets(1).Range("a1:a2").Value = ""
>End Sub
なるほど!
バックグラウンドで開いておけばよいというわけですね。
これでやってみます。
とても助かりました。どうもありがとうございました!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 547