ダイアログのテキストボックスの値をセルに入れるには †
ページ | OpenOffice.org FAQの登録ページ |
---|---|
投稿者 | 三角巾 |
分類 | |
優先順位 | |
状態 | |
カテゴリー | |
投稿日 | 2010-07-23 16:04:58 (金) |
OS | Windows XP |
依存するページ | |
バージョン |
メッセージ †
回答ページでは行末に「~」を付加する必要はありません |
ダイヤログにあるテキストボックスの値をセルに入れたいのですが
方法がわからず悩んでいます
サンプルコードの寄せ集めで下記のコードを作りましたが
oRange.Valueの値はテキストボックスの値を反映せず
0になってしまいます
途中MsgBoxを入れてみましたがMsgBoxはテキストボックスの値を反映します
どこで間違えているのか教えてくださると助かります
もしくは全く別の方法があるのでしょうか?
Dim oDialog As Object Sub Dialog_1 DialogLibraries.LoadLibrary("Standard") oDialog = CreateUnoDialog(DialogLibraries.Standard.Dialog1) oDialog.execute() End Sub sub ok Dim oTextBox1 As Object oTextBox1 = oDialog.GetControl("TextField1") Dim oPass As string Dim oRange As Object Dim oCellName As String oPass = oTextBox1.text MsgBox oPass oCellName = "A1" oRange = ThisComponent.Sheets(0).getCellRangeByName(oCellName) With oRange .clearContents(511) 'セルの現在値をクリアする .Value = opass End With MsgBox "セル" & oCellName & "の値は " & oRange.Value & " です" end sub
たぶん †
M.Kamataki (2010-07-23 16:45:06 (金))
実際のダイアログやマクロが格納されたCalcのサンプルファイルがあれば、検証も可能ですが、たぶん「oRange.Value」ではなく「oRange.String」なのだと思います。
数値しか入力しないなら番号フィールドを †
はにゃ? (2010-07-24 01:08:19 (土))
M.Kamataki さんがお答えですが、
セルに値を設定するときには、内容の型に応じて数値、数式、テキストそれぞれ別々の方法で設定しなければいけません。oRange.setValue(100.0) ' 数値 oRange.setFormula("=A1") ' 数式 oRange.setString("hoge") ' テキスト
テキストや様々な値を入力して適宜判断するのであればテキストフィールドで、数値のみをダイアログのフィールドに入力するのであれば番号フィールドを利用したほうが便利です。NumbericField1 がダイアログにあるとき。oNumericField1 = oDialog.getControl("NumbericField1") oRange.setValue(oNumericField.getValue())
pseud-property については誰かに説明をおまかせします。私は元メソッド信奉派ですから。
Stringで解決しました †
三角巾 (2010-07-27 11:25:22 (火))
M.Kamatakiさん、はにゃ?さん ありがとうございました
Stringで問題なくテキストが入力されました
今後の発展で数式等の入力も必要になるので大変参考になりました
脱エクセルを目指して頑張ります