Top > OOobbs > 12
** [[OOobbs/12]] [#ga853046]
-''サマリ'': マクロで本日の日付を記述するコード
-''環境'': Calc
-''状態'': 解決
-''投稿者'': [[risa]]
-''投稿日'': 2004-05-12 (水) 15:04:36

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

えっと, 

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 を使って文字列に
変換してから文字列として入力する必要があります。

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

-ドキュメントについて [[OOoBasic/Generic/document]]
-シートについて [[OOoBasic/Calc/sheet]]
-セルについて [[OOoBasic/Calc/cell]]
-セルの値について [[OOoBasic/Calc/contents]]
-数書式設定について [[OOoBasic/Calc/numberformats]]

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

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

#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