* Comboboxからの値取得について [#yf17c9d8]
 |RIGHT:|LEFT:|c
 |~ページ|[[OpenOffice.org FAQの登録ページ]]|
 |~投稿者|たろう|
 |~分類|#listbox3(Q&A,faq03,class)|
 |~優先順位|#listbox3(普通,faq03,priority)|
 |~状態|#listbox3(完了,faq03,state)|
 |~カテゴリー|#listbox3(Calc 表計算,faq03,category)|
 |~投稿日|2009-08-05 14:12:15 (水)|
 |~OS|Windows XP|
 |~依存するページ|http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOobbs%2F54|
 |~バージョン|#listbox3(2.3,faq03,version)|
 
 //////////バグ対策(以降マッチさせない)
 
 ** メッセージ [#qfc9ce29]
 |LEFT:|c
 |回答ページでは行末に「~」を付加する必要はありません|
 ダイアログ上のコンボボックスの値取得について教えてください。
 
 依存するページのサイトを参考に作成してみたのですが、コンボボックスの値がうまく取得できません。
 
 やりたいことは、コンボボックス1の値を変更したら、その値を取得し、それに基づいたデータをコンボボックス2に表示したいと思っています。
 
 コンボボックス1の値取得の部分でつまずいています。
 
 コンボボックス1でテキストを変更したときに動くイベントを設定し、下記のプログラムから始まるモジュールを動かそうとしています。
 
 
 Dim oDialog As Object
 
 oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)
 
 oDialog.getControl("ComboBox1").getSelectedText()
 
 3行目の部分で、msgboxをつけて、コンボボックス1の値を見てみたのですが、取得できていないらしく、空のメッセージボックスが表示されます。
 
 
 どこが間違っているのでしょうか。
 
 おわかりになる方がいらっしゃいましたら教えてください。
 
 よろしくお願いいたします。
 
 ----
 ***無題 [#r5f0f303]
 >gorodoku (2009-08-05 14:48:59 (水))~
 ~
 コンボのプロパティの指定を単純にtextにしてみてはいかがでしょうか?~
 ~
 msgbox oDialog.getControl("ComboBox1").Text~
 ~
 コンボボックス1の値が取得できたら、これを元にコンボボックス2のアイテムを変更する(StringItemListプロパティに場合に応じた配列を代入する)、、、といった感じでしょうか。~
 ~
 可能であれば、サンプルを提示いただけると検討しやすいです。~
 
 //
 ***Comboboxからの値取得について [#ue9b377a]
 >たろう (2009-08-05 15:14:01 (水))~
 ~
 gorodokuさん~
 ~
 お返事ありがとうございます。~
 ~
 下記のサイトを参考にしたのですが、~
 ~
 http://hermione.s41.xrea.com/pukiwiki/pukiwiki.php?OOobbs%2F54~
 ~
 このサイトによりますと、getSelectedTextがいいような気がするのですが、Textも試してみましたが、結果は同じでした。~
 ~
 ~
 ~
 サンプルは最初の質問で提示させて頂きましたが下記になります。~
 ~
 Dim oDialog As Object~
 ~
 oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)~
 ~
 oDialog.getControl("ComboBox1").getSelectedText()~
 ~
 コンボボックス1で取得した値を元にシートにあるデータを検索し、検索した複数のデータをコンボボックス2に表示したいと思っています。~
 ~
 コンボボックス1で選択したデータの取得がうまくいかない状態です。~
 ~
 よろしくお願いいたします。~
 
 //
 ***ごめんなさい、言葉足らずでした。 [#w0f283dd]
 >gorodoku (2009-08-05 15:27:42 (水))~
 ~
 言葉足らずで申し訳ありませんでした。作成したファイル(中途でも結構です)を、公開してよいものならば添付していただければ、ということでした。~
 このページの下のほうのメニューに「ファイル添付」というのがありますので、そちらから添付できます。~
 
 //
 ***Comboboxからの値取得について [#ad2e50ed]
 >たろう (2009-08-05 15:39:16 (水))~
 ~
 gorodokuさん~
 ~
 ありがとうございます。~
 ~
 申し訳ありません、ファイルそのものの添付というのはできませんので、プログラムの仕様をできるだけわかりやすく書きます。~
 (必要な部分だけ抜粋します。)~
 ~
 ダイアログ上に、コンボボックスが2つあり、コンボボックス1にはシート1にあるA列の値が全部入っています。~
 ~
 A列には、野菜、果物、肉、、、というような内容が入っています。~
 ~
 そして、B列にはA列が野菜の場合は、大根、キャベツ、人参、、、A列が果物の場合は、リンゴ、バナナ、イチゴ、、、、~
 ~
 と言うような感じで、データが入っています。~
 ~
 コンボボックス1で野菜を選択したら、コンボボックス2ではデータを絞り込んで、大根、キャベツ、人参、、~
 ~
 と言うデータを表示させたいのです。~
 ~
 現在では、コンボボックス1で選択したデータの取得ができていない状態です。~
 ~
 よろしくお願いいたします。~
 
 //
 ***無題 [#hd5839fb]
 >ike@九州 (2009-08-05 16:35:52 (水))~
 ~
 SbxSTRING getText ( void )     表示中のテキストを取得する ~
 SbxSTRING getSelectedText ( void ) 選択中(青反転)のテキストを取得する~
 ~
 コンボボックスでは上記のような仕様になってます。~
 ~
 依存ページにサンプルがありますので、マクロを実行させ確認してください。~
 Dim oDialog As Object宣言の場所が違うのでは…~
 ~
 Sub Event~
 %%Dim oDialog As Object%%~
 %%oDialog = createUnoDialog(DialogLibraries.Standard.Dialog1)%%~
 oDialog.getControl("ComboBox1").getText()~
 〜~
 End Sub~
 
 //
 ***Comboboxからの値取得について [#k2208c47]
 >たろう (2009-08-05 17:06:05 (水))~
 ~
 ike@九州さん~
 ~
 いつもありがとうございます。~
 ~
 ダイアログを表示する部分と、コンボボックスを変更したときにデータを取得・データセットのモジュールを分けていたのですが、それがいけなかったみたいで、教えて頂いたようにサンプルを見直して、モジュールも一緒にし、要らない部分を削ったら動きました!~
 ~
 ありがとうございました!!~
 ~
 少し進んで、ホッとしました!~
 ~
 またわからないことが出てくるかと思いますが、またよろしくお願いいたします。~
 
 //
 ***解決したようですね [#v605b23c]
 >gorodoku (2009-08-05 18:59:59 (水))~
 ~
 おっと帰宅したらもう解決していたようですね。~
 ikeさんフォローありがとうございます。たろうさん、あまりお役に立てずすみませ〜ん<(_ _)>~
 
 //
 ***ページ番号を変更しました [#y6bc947c]
 >M.Kamataki (2009-08-27 16:46:16 (木))~
 ~
 faq/5/25にページ番号を変えました。[[faq/5/3]]をご覧ください。~
 
 //
 #article