C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Excelで別ファイルを取得するには

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■96444 / inTopicNo.1)  Excelで別ファイルを取得するには
  
□投稿者/ エイ (1回)-(2020/11/23(Mon) 22:15:53)

分類:[.NET 全般] 

・Exceloffice2019

Excelでmain.xlsmファイルから別ファイル(A0.xlsm)のワークシートをコンボボックスに表示させたいのですが
出来ませんでした。

コードは(main.xlsm)

Private Sub ComboBox1_Change()

If OptionButton1 = True Then

'別ファイルのワークシート
 
TextBox1.Value = Sheets("'[A0.xlsm]Test").Range("'[A0.xlsm]B2").Offset(ComboBox1.ListIndex)
 
ComboBox1.ListIndex = 0


End If

Private Sub OptionButton1_Click()


ComboBox1.RowSource = "[A0.xlsm]Test!$A$2:$A$4"
'ファイル名A0.xlsm
'Testはシート名
'A2〜A4をコンボボックスに表示させる。

ComboBox1.ListIndex = 0

end sub

エラー:RowSourceプロパティを設定できません。プロパティの値が無効です。

A0.xlsmが開いているとエラーは起きませんが、A0.xlsmが開いていない状態で実行すると上の通りです。

そのA0.xlsmが開いていない状態で実行させるにはどうしたらいいのでしょうか?

別ファイルからのシートで検索して参考になったコードを試してもできませんでした。
https://www.excel-wing.com/study/jitumu/998

よろしくお願いします。



引用返信 編集キー/
■96445 / inTopicNo.2)  Re[1]: Excelで別ファイルを取得するには
□投稿者/ 魔界の仮面弁士 (2922回)-(2020/11/24(Tue) 09:09:39)
No96444 (エイ さん) に返信
> '別ファイルのワークシート
> TextBox1.Value = Sheets("'[A0.xlsm]Test").Range("'[A0.xlsm]B2").Offset(ComboBox1.ListIndex)

同一の Application インスタンス内で開くために、
 Dim oBook1 As Excel.Workbook
 Set oBook1 = Application.Workbooks.Open("C:\Example\A0.xlsm")
 TextBox1.Value = oBook1.Range("B2").Offset(ComboBox1.ListIndex)
のように書くことができます。

「どのブックのワークシートなのか」を明示するために、
Workbook オブジェクトを明示しておくことが重要です。


既に別ブックを開いている場合には、
'intNumber は 1 以上 Application.Workbooks.Count 以下
 Set oBook1 = Application.Workbooks(intNumber)
または
 'strBookName = "A0"
 'strBookName = "A0.xlsm"
 Set oBook1 = Application.Workbooks(strBookName)
の形式で呼び出せます。
後者の形式の場合、そのブックを開いたときのエクスプローラーのオプション設定で
拡張子を隠す設定になっているか、拡張子を表示する設定になっているかで変わります。
引用返信 編集キー/
■96449 / inTopicNo.3)  Re[2]: Excelで別ファイルを取得するには
□投稿者/ エイ (3回)-(2020/11/24(Tue) 19:06:02)
No96445 (魔界の仮面弁士 さん) に返信
ありがとうございました。

解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ