Vba で時間をフォーマットする方法 (例付き)
VBA で次の引数を指定してFormat関数を使用すると、Excel で時刻を特定の方法で書式設定できます。
- h : ゼロを含まない時間
- hh : ゼロを含む時間
- n : ゼロを含まない分
- nn : ゼロを含む分
- s : ゼロを含まない秒数
- ss : ゼロを含む秒
- AM/PM : 午前/午後表示
次の例は、実際に VBA を使用して時間をフォーマットする方法を示しています。
例: VBA を使用して時刻をフォーマットする
Excel に次の日付/時刻列があるとします。
次のマクロを作成して、列 A の時刻を具体的に書式設定し、書式設定された時刻を列 B ~ E に表示できます。
SubFormatTime ()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = Format(Range(" A " & i), " h ")
Range(" C " & i) = Format(Range(" A " & i), " h:nn ")
Range(" D " & i) = Format(Range(" A " & i), " h:nn:ss ")
Range(" E " & i) = Format(Range(" A " & i), " h:nn:ss AM/PM ")
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 B ~ E は、特定の方法で書式設定された列 A に毎回表示されるようになりました。
短時間、中時間、および長時間のショートカット形式も使用できることに注意してください。
SubFormatTime ()
Dim i As Integer
For i = 2 To 8
Range(" B " & i) = Format(Range(" A " & i), " Short Time ")
Range(" C " & i) = Format(Range(" A " & i), " Medium Time ")
Range(" D " & i) = Format(Range(" A " & i), " Long Time ")
Next i
End Sub
このマクロを実行すると、次の出力が表示されます。
列 B ~ D は、特定の方法で書式設定された列 A に毎回表示されるようになりました。
追加リソース
次のチュートリアルでは、VBA で他の一般的なタスクを実行する方法について説明します。
VBA: mm/dd/yyyy を日付形式として使用する方法
VBA: セルをパーセンテージとして書式設定する方法
VBA: 条件付き書式をセルに適用する方法