アプリ版:「スタンプのみでお礼する」機能のリリースについて

今時間がA1に「830」とあります。
これは「8:30」の意味で、A1を「8.5」にしたいです。
例えば「1200」なら「12.0」。「1345」なら「13.75」にしたいです。
これを関数ではなくマクロでやりたいです。
どのようにすればよろしいですか?
お願いします。

A 回答 (5件)

ANo2 merlionXXです。



先ほどのでは端数処理がないですね。
割り切れないと小数点以下がかなり長くなってしまいます。
小数2位までもとめるならこんな感じかな

Sub test()
Dim myNm As String
myNm = Format(Range("A1").Value, "0000")
MsgBox Val(Left(myNm, 2)) + Application.Round(Val(Right(myNm, 2)) / 60, 2)
End Sub
    • good
    • 0
この回答へのお礼

完璧でした。
ありがとうございました!!!

お礼日時:2011/01/27 17:12

一例です。



Sub aa()
Range("A1") = TimeValue(Format(Range("A1"), "00:00")) * 24
End Sub
    • good
    • 0

15分刻みしかないなら、0.25単位なので判定だけですみます。



時間同士で算出ありますか。休憩時間、残業時間求めたいとか。


A1に入れたら、A2に入れたら、というのは後から。
まずは固定セルで正しい結果を出すところ検討、確認。


これくらいならそうこうしているうちに模範回答が出るでしょう。
学習の過程なら、回答そのまま使わないで、自分で同じになってでも、打ち込んで作る行為をした方が良い。ただ貼付けるのと作ってみるのは違います。
    • good
    • 0

マクロの一例です。



Sub test()
Dim myNm As Long
myNm = Range("A1").Value
MsgBox Val(Left(Format(myNm, "00:00"), 2)) + Val(Right(Format(myNm, "00:00"), 2)) / 60
End Sub

ワークシート関数なら
=LEFT(TEXT(A1,"00!:00"),2)+RIGHT(TEXT(A1,"00!:00"),2)/60
ですけど。
    • good
    • 0

例えば


時間の"830"を"0830"、"1230"を"1230"にするには
RIGHT("0"&"830",4)
RIGHT("0"&"1230",4)
で、10時より前かの判定なくできます。
時間分へ分けるのは応用。

機能ごとに検討してあとから全体をつなげる。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!