** [[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 |