Top > OOobbs > 12

OOobbs/12 Edit

  • サマリ: マクロで本日の日付を記述するコード
  • 環境: Calc
  • 状態: 解決
  • 投稿者: risa?
  • 投稿日: 2004-05-12 (水) 15:04:36

質問 Edit

初めまして。OpenOffice初心者です。 マクロを勉強中なのですが、下記の処理のコードが分かる方、 いらっしゃいましたら教えて下さい。 処理:セルA1に、本日の日付を記入する(書式はyyyy/mm/dd) たったこれだけの事なのですが、色々調べてみたのですが どうにも分かりませんでした。 宜しくお願いいたします。

回答 Edit

えっと,

OpenOffice.org Basic の Now 関数で現在の日付を取得して その値をセルに入力。そして,数書式設定を設定して 希望する形式の日付表示にしています。

Sub today_1
Dim oDoc As Object
Dim oSheet As Object, oCell As Object
Dim oNumberFormats As Object
Dim oLocale As New com.sun.star.lang.Locale
Dim nKey As Long
Dim dNow As Date
  oLocale.Language = "ja"
  oLocale.Country = "JP"
  oDoc = ThisComponent
  oSheet = oDoc.getSheets().getByIndex(0)
  oCell = oSheet.getCellRangeByName("A1")
  dNow = Now 'Now is OOo Basic runtime function.
  oCell.Value = dNow
  oNumberFormats = oDoc.NumberFormats
  nKey = oNumberFormats.queryKey( "YYYY/MM/DD", oLocale, false )
  If nKey <> -1 Then
    oCell.NumberFormat = nKey
  Else
    nKey = oNumberFormats.addNew( "YYYY/MM/DD", oLocale )
    oCell.NumberFormat = nKey
  End If
End Sub

このコードを実行すると,一番最初のシートのセル "A1" に 日付が入力されます。

この日付は,日付を示す数値データを数書式設定で 見た目をよくしているので,別のセルなどに参照すると 変なことになってしまうかもしれません。

(書式はyyyy/mm/dd) の部分ですが,ymd を小文字にするとエラーがでてしまいます。 なので,YMD の大文字で指定します。

日付の見た目を数書式設定で行わないのであれば, OOo Basic の runtime function を使って文字列に 変換してから文字列として入力する必要があります。

使っている関数などを理解するには,

といったところでしょうか。

  • はにゃ?? 2004-05-13 (木) 01:25:09
  • ありがとうございました!教えていただいたコードで処理実行できました。今、このコードを解読しながら勉強しています。今後ともよろしくお願いいたします。 -- risa? 2004-05-14 (金) 12:31:44
  • 新しいユーザーが増えそうな予感ですね。ページの説明がたりなかったりしたら,質問してくだされば追記します。 -- はにゃ?? 2004-05-15 (土) 00:19:23


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