「Web出版サイト」ベータ公開

Q&A集[?]

当サイトでのご質問の受付は終了しました

すべてのコンテンツを読み込み専用としたため、回答欄からも投稿できません

Apache OpenOffice/LibreOfficeのご質問はそれぞれのフォーラムへご投稿ください

質問コーナー

サイト内検索

分類メニュー

関連サイト


本日:1
昨日:0
総数:1482
現在:1


ダイアログのテキストボックスの値をセルに入れるには

ページOpenOffice.org FAQの登録ページ
投稿者三角巾
分類
edit/refer
優先順位
edit/refer
状態
edit/refer
カテゴリー
edit/refer
投稿日2010-07-23 16:04:58 (金)
OSWindows XP
依存するページ
バージョン
edit/refer

メッセージ

回答ページでは行末に「~」を付加する必要はありません

ダイヤログにあるテキストボックスの値をセルに入れたいのですが
方法がわからず悩んでいます
サンプルコードの寄せ集めで下記のコードを作りましたが
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で問題なくテキストが入力されました
今後の発展で数式等の入力も必要になるので大変参考になりました
脱エクセルを目指して頑張ります

お名前:
題名: