時間の値が 1:23:45 AM のセルがあり、時間の値だけを表示するか、それを他の計算に使用したいと考えています。vbaを使用してこれを行う必要があります。いいえ、列を手動でフォーマットできません。
ありがとう、サム
VBAを使用してセルをフォーマットし、時間のみを表示するには:
With Worksheets("Sheet1").Cells(1, 1)
.NumberFormat = "H"
End With
VBAで時間の値を読み取るには(セルのフォーマットに関係なく):
Dim hourValue As Integer
With Worksheets("Sheet1").Cells(1, 1)
If (IsDate(Format(.Value, "hh:mm:ss"))) Then
hourValue = Hour(.Value)
Else
// handle the error
End If
End With
VBAで変換を実行せずにコードで表示された値を使用する場合は、プロパティではなくText
セルのプロパティ( )を使用します。最初に、セルが正しくフォーマットされていることを確認する必要があります。Range
Value
Dim hourValue As Integer
With Worksheets("Sheet1").Cells(1, 1)
If ((.NumberFormat = "H") And _
(IsDate(Format(.Value, "hh:mm:ss")))) Then
hourValue = CInt(.Text)
Else
// handle the error
End If
End With
ワークシートの数式で時間の値を使用するだけの場合は、HOUR()
ワークシート関数を使用します-例:=HOUR(A1)
最後に、シートが保護されているために列を手動でフォーマットできない場合は、VBAでもフォーマットできません。
あなたのセルが時間フィールドかどうかわかりません。もしそうなら、あなたは次のことをすることができますか?
dim h as integer
h = Hour(Cell(1,1))