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

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



kusano wrote (2007/06/08 9:11) :
> 以下のようなコードで、
> (0, 0) にある“9:30”という時間から分である“30”を抜き出したい。
> でも期待していた数値ではなく何故か“9”が返ってきます。
> 理由をご存知の方いらっしゃらないでしょうか?
> 
> ThisComponent.Sheets(0).getCellByPosition(1, 1).Value = Val(Format(ThisComponent.Sheets(0).getCellByPosition(0, 0).String, "MM"))


その理由は何であるか、という話ではなくなりますが

Excel でも Text(A1,"m") とかでうまく取得できないケースはあり
ますし OpenOffice.org の Format() で hh:mm:ss のうち一部分だけ
指定というのは避けたほうがいいような気もします。

OpenOffice.org だと DatePart() ならさっくり行けますね。

ThisComponent.Sheets(0).getCellByPosition(1, 2).Value = DatePart("n",ThisComponent.Sheets(0).getCellByPosition(0, 0).String)

DatePart() だと時刻の分の書式は m ではなくて n なのですが、
Format()の書式のように大文字小文字の違い(M/m)で機能が異なるという
仕様は見た目に紛らわしい上に読み上げた音で区別しにくいので
どちらかというと DatePart() の書式仕様の方が私は好きですね。


-- 
mutsuro.


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