Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7 Professional : Excel 2013)
個人用マクロブックに作ったデータの読み込み方法
投稿日時: 20/11/12 21:20:49
投稿者: ロードランナー
投稿者のウェブサイトに移動

個人用マクロブック(Personal.xlsb)のシートにデータを作り、そのデータをListboxに表示したいのですが、
Rowsorceでどのように指定すればいいのでしょうか。ご教示ください。
 
ちなみに、イミディエイトウィンドウで
? Range("[PERSONAL.XLSB]Sheet1!A1").value
とすると、エラーになりますが、開いているAというファイルに対して
? Range("[A.XLSx]Sheet1!A1").value
ではエラーになりません。

投稿日時: 20/11/12 21:22:02
投稿者: ロードランナー
投稿者のウェブサイトに移動

言い忘れました。
 
ListBoxは、UserForm上に作っています。

回答
投稿日時: 20/11/13 08:55:07
投稿者: WinArrow
投稿者のウェブサイトに移動

>個人用マクロブック
は、アドイン属性となります。
 
アドイン属性のブックは、ワークシートが表示されません。
 
Workbooks("Personal.xlsb").IsAddin = False
とすることで、
セルを参照することができると思います。

回答
投稿日時: 20/11/13 10:50:54
投稿者: Suzu

VBA板でのご質問なので、VBAを使用して良いという認識で。。
 
RowSource を使用しないで、List プロパティーを使用してしまう手法もあります。
 
UserForm_Initialize にて
Me.ListBox1.List = Workbooks("PERSONAL.XLSB").Worksheets("Sheet1").Range("A1").CurrentRegion.Value

回答
投稿日時: 20/11/13 19:23:57
投稿者: なと

※投稿主への回答ではないです。
 

WinArrow さんの引用:
>個人用マクロブック
は、アドイン属性となります。
 
アドイン属性のブックは、ワークシートが表示されません。
 
Workbooks("Personal.xlsb").IsAddin = False
とすることで、
セルを参照することができると思います。

 
これは誤解です。
PERSONAL.XLSBは単なるワークブックであり、アドインではありません。
(IsAddinは元からFalseですし、xlsbは内部構造がバイナリなだけで普通のブックです。)
アドイン特有の使い方もできません(参照設定、UTF、リボン、etc...)
 
リボンの 表示>再表示>PERSONAL.XLSB を操作するか、VBAで
Workbooks("Personal.xlsb").Windows(1).Visible = True

と書けば表示することができます。

回答
投稿日時: 20/11/13 20:48:20
投稿者: WinArrow
投稿者のウェブサイトに移動

なと さん
 
ご指摘ありがとうございます。
 
私は、現時点では、個人用マクロブックを使用していません。
 
昔、個人用マクロブックを意図的にアドイン属性で使用していたので、
その時の癖が災いして、誤ったレスをしてしまいました。
誤解ではなく、勘違いです。
申し訳ありませんでした。

回答
投稿日時: 20/11/13 21:33:10
投稿者: なと

WinArrow様
特に責めるつもりはなかったので、謝罪まで頂かなくても大丈夫でした。
これを読んだ誰かが、誤った理解をするのを恐れてコメントしました。
勘違いもよくあることですから、気にしないでいただけると幸いです。

投稿日時: 20/11/14 04:46:14
投稿者: ロードランナー
投稿者のウェブサイトに移動

みなさま
 
丁寧な解説をいただき、ありがとうございました。
 
 SuzuさんのListプロパティを使うことで解決いたしました。
 
Listボックスへの表示は、RowsouceかAdditemしかないと思っていたので、またひとつ勉強になりました。
 
ありがとうございました。<(_ _)>