* 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