セルに時間を入力すると、Excelは時間の時間と分の間のコロンの存在をキー入力します。ただし、キーボード上のコロンの位置が原因​​で、入力する時間値ごとにコロンを入力すると、特に入力する時間値がかなりある場合は、速度が低下する可能性があります。

このため、コロンの入力をスキップして、自動的に入力するか、一度に入力するかを疑問に思うかもしれません。

それらを自動的に入力するには、もう少し作業が必要で、マクロを使用する必要があります。これについては、後ほど説明します。コロンを一度に入力するには、次のように数式を使用します。

=TIMEVALUE(REPLACE(A1,3,0,":"))

この数式は、時間値(コロンなし)がセルA1にあり、4桁で構成されていることを前提としています。したがって、セルA1に1422などの値が含まれている場合、数式は実際の時間値として14:22を返します。 (セルを時間値としてフォーマットする必要がある場合があります。)

元の入力セルに、0813ではなく813のように、3桁のみを使用する時間が含まれている可能性がある場合は、少し異なる式を使用する必要があります。

=TIME(LEFT(A1,LEN(A1)-2),RIGHT(A1,2),0)

コロンの挿入を自動的に実行したい場合は、マクロを使用できます。ワークシートに日付を追加する予定のセルの範囲を調べるマクロを作成してから、エントリにコロンを挿入できます。これは、SheetChangeイベントによってトリガーされるマクロを作成することによって行われます。次のマクロはそのようなものの1つです:

Private Sub Workbook_SheetChange(ByVal Sh As Object, _   ByVal Target As Excel.Range)

Dim TimeStr As String

On Error GoTo EndMacro     If Application.Intersect(Target, Range("C7:D15")) Is Nothing Then         Exit Sub     End If     If Target.Cells.Count > 1 Then         Exit Sub     End If     If Target.Value = "" Then         Exit Sub     End If

Application.EnableEvents = False     With Target         If .HasFormula = False Then             Select Case Len(.Value)

Case 1 ' e.g., 1 = 00:01 AM                     TimeStr = "00:0" & .Value                 Case 2 ' e.g., 12 = 00:12 AM                     TimeStr = "00:" & .Value                 Case 3 ' e.g., 735 = 7:35 AM                     TimeStr = Left(.Value, 1) & ":" & _                     Right(.Value, 2)

Case 4 ' e.g., 1234 = 12:34                     TimeStr = Left(.Value, 2) & ":" & _                     Right(.Value, 2)

Case Else                     Err.Raise 0             End Select             .Value = TimeValue(TimeStr)

End If     End With     Application.EnableEvents = True

Exit Sub

EndMacro:

MsgBox "You did not enter a valid time"

Application.EnableEvents = True     ActiveCell.Offset(-1, 0).Select End Sub

マクロが最初に行うことは、入力されたばかりのデータがC7:D15の範囲にあるかどうかを確認することです。そうでない場合は、マクロが終了します。また、選択されているセルが1つだけであり、セルが空でないことを確認します。これらの基準がすべて満たされている場合、マクロはセル内の値の長さをチェックし、必要に応じて先行ゼロで埋めます。このマクロは、ChipPearsonのサイトにあるマクロに基づいています。

http://cpearson.com/excel/DateTimeEntry.htm

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(2412)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。