OOobbs/12
質問
初めまして。OpenOffice初心者です。 マクロを勉強中なのですが、下記の処理のコードが分かる方、 いらっしゃいましたら教えて下さい。 処理:セルA1に、本日の日付を記入する(書式はyyyy/mm/dd) たったこれだけの事なのですが、色々調べてみたのですが どうにも分かりませんでした。 宜しくお願いいたします。 回答
えっと, 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 を使って文字列に 変換してから文字列として入力する必要があります。 使っている関数などを理解するには,
といったところでしょうか。
|