Top > OOobbs3 > 86
** [[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

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes