時間データをエクセルにmm:ss形式で入力する(時間の場合は先頭の0を除く
エクセルシートに時間データをmm:ss形式で入力したいのですが、セル形式はmm:ssですが、以下のように入力すると問題が発生します。問題は、セルの形式がmm:ssであるにもかかわらず、このように入力すると
12:33のようなデータを入力すると、実際に保存されている値は12時間33分です。
エクセルシートに時間データをmm:ss形式で入力したいのですが、セル形式はmm:ssですが、以下のように入力すると問題が発生します。問題は、セルの形式がmm:ssであるにもかかわらず、このように入力すると
12:33のようなデータを入力すると、実際に保存されている値は12時間33分です。
解決策があります! このVBAコードをワークシート・モジュールに配置してください。左上のツリービューで、時間を入力したいシートをダブルクリックします。中央のコードパネルに以下のコードを配置します。 4. VBE を閉じる
このコードを使用してください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value < 0 Or Target.Value > 1 And Target.NumberFormat <> "h:mm" Then Exit Sub
Application.EnableEvents = False
Target.Value = Target.Value / 60
Target.NumberFormat = "mm:ss"
Application.EnableEvents = True
End Sub
データを入力する範囲を既にフォーマットしている場合は、この行を最初の行として使用してください:
If Target.Value < 0 Or Target.Value > 1 Then Exit Sub
これは値とフォーマットを変更することに注意してください。特定の列に制限したい場合は、次の行を追加します:
If Target.Column <> 3 Then Exit Sub
または次の行を追加して特定の範囲に制限します
If Intersect(Target, Range("A2:A100") Is Nothing Then Exit Sub
私も同じ問題を抱えていましたが、ここに私が見つけた解決策があります。TIME
関数を使って数式を入力すると、=TIME(H,M,S)
として時間の行列が作成され、好きなようにフォーマットすることができます。数学の関係で毎回0時間を入力しなければなりませんが、これで全体が無限に楽になりました。
上記の解決方法です。h:mm
形式を使用している場合、エクセルでは23以上にすることはできません。[h]:mm
形式で時間を括弧で囲んでおけば、23を超えても問題ありません。
秒単位の値を計算するには、セルを「一般的な」数値形式に設定し、次の式を入力します。