Top > OOobbs3 > 86

OOobbs3/86 Edit

  • サマリ: ダイアログのTextField1の値を取得するには?
  • 環境: Basic
  • 状態: 解決
  • 投稿者: クロッピ?
  • 投稿日: 2012-03-16 (金) 18:36:21

質問 Edit

ダイアログを作成しています。 ダイアログに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

回答 Edit

  • 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
  • はにゃ? 2012-03-16 (金) 18:57:27
  • 早速の回答ありがとうございます。まだ同じところのエラーが出ます。自分がちょっと良く分かってないので、また考えます。 -- クロッピ 2012-03-16 (金) 20:12:05
  • Dim oYear As String で解決しました(>.<;) 毎回初歩的なところでお恥ずかしい! -- クロッピ 2012-03-17 (土) 10:18:32

感想,コメント,メモ Edit



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