[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[openoffice:10485 ] Re: マクロで (0,0) に ある時刻から分をぬきだそうとすると分 ではなく (9,9) が返ってきます



> (0, 0) にある“9:30”という時間から分である“30”を抜き出したい。
> でも期待していた数値ではなく何故か“9”が返ってきます。
> 理由をご存知の方いらっしゃらないでしょうか?


ご参考になるかどうか。

Sub Main
	oSheet = ThisComponent.getCurrentController().getActiveSheet()
	
	A1 = oSheet.getCellRangeByName("A1").getCellByPosition(0, 0)
	B1 = oSheet.getCellRangeByName("B1").getCellByPosition(0, 0)
	
	Print A1.String, A1.Value		' String側は 9:30、Value側は0.3958333333
	B1.String = format(A1.Value, "HH:MM")	' この方法はダメみたい

	oRange = oSheet.getCellRangeByName("C1:D1")
	C1 = oRange.getCellByPosition(0, 0)
	D1 = oRange.getCellByPosition(1, 0)
	
	C1.Value = Hour(A1.Value)	' 9
	D1.Value = Minute(A1.Value)	' 30 ... こちらの方法でOKみたい
End Sub


オンラインヘルプを見ると、Basic の Format()関数が理解できる書式コードは、
どうやら、0, #, % などの単純なコードだけみたいな感じです。
バグなのかなぁ。仕様なのかなぁ。ふ〜む。

でも気を落とすことはありませんです。
それ以外の書式については、それなりに関数が用意されているようです。
上記のような、Hour 関数や Minute 関数、それに、例えば、曜日を扱う
WeekDay 関数もあります。

たとえば、AAA → 「日」や AAAA → 「日曜日」については
format(x, "AAAA") のような方法ではうまくいかないようです。
で、こんなのでお茶を濁して、、、

	Print Mid("月火水木金土日", Weekday( Now() ), 1) + "曜日"

ではでは

Tora



--[PR]------------------------------------------------------------------
      ■■  freeml大型リニューアルのお知らせ  ■■
現在、会員の皆様から寄せられた貴重なご意見やご要望を参考に鋭意開発中!
 下記より詳細をご確認ください。
        ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
        http://click.freeml.com/ad.php?id=115698 
------------------------------------------------------------------[PR]--
■GMO INTERNET GROUP■ GMO INTERNET www.gmo.jp