** [[OOobbs3/86]] [#y0dd06f2] -''サマリ'': ダイアログのTextField1の値を取得するには? -''環境'': Basic -''状態'': 未解決 -''状態'': 解決 -''投稿者'': [[クロッピ]] -''投稿日'': 2012-03-16 (金) 18:36:21 *** 質問 [#v8dcd78f] ダイアログを作成しています。 ダイアログにTextField1、OKボタンを置いて TextField1に数字を入力します。 OKボタンを押すとマクロを実行して その入力された値をシート1に貼り付けたいのですが、 入力された値を取得するマクロの記述が分かりません。 以下書いてはみたものの動かないマクロです。 Sub Year Dim oDialog3 As Object Dim oTextField As Object,oYear As Object DialogLibraries.LoadLibrary("Standard") oDialog3 = CreateUnoDialog(DialogLibraries.Standard.Dialog3) oTextField = oDialog3.GetControl("TextField1") oYear = oTextField.getText()'←ここで(オブジェクトの無用な使用)のエラーが出ます msgbox oYear.Value'まず取得した値を確認する End Sub *** 回答 [#h518a013] - OK ボタンを押すとダイアログが閉じるかどうかで変わりますが、次のような感じにします。 Sub Year Dim oDialog3 As Object Dim oTextField As Object,oYear As Object DialogLibraries.LoadLibrary("Standard") oDialog3 = CreateUnoDialog(DialogLibraries.Standard.Dialog3) If oDialog3.execute() Then ' OK が押されたら oTextField = oDialog3.GetControl("TextField1") oYear = oTextField.getText()'←ここで(オブジェクトの無用な使用)のエラーが出ます msgbox oYear.Value'まず取得した値を確認する End If oDialog3.dispose() End Sub この場合、OK ボタンはボタンの種類で OK を割り当てておきます。 標準のボタンを押してもダイアログを閉じずにボタンを押したときのイベントで行う場合は以下のようなサブルーチンをボタンに割り当てます。 Sub OKButtonPushed(ev) oTextField = ev.Source.getControl("TextField1") msgbox oTextField.getText() End Sub -- はにゃ? &new{2012-03-16 (金) 18:57:27}; - 早速の回答ありがとうございます。まだ同じところのエラーが出ます。自分がちょっと良く分かってないので、また考えます。 -- クロッピ &new{2012-03-16 (金) 20:12:05}; - Dim oYear As String で解決しました(>.<;) 毎回初歩的なところでお恥ずかしい! -- クロッピ &new{2012-03-17 (土) 10:18:32}; #comment *** 感想,コメント,メモ [#rc61d945] #comment |