特定のスプレッドシートのユーザーが、時刻データを 24 時間形式で入力していることを確認する必要があります。コロンを省略しているユーザーがいて、それが問題を引き起こしているようです。セルの範囲に特定の書式を強制する方法はありますか?
答え1
私は Excel 2010 を使用しているため、Excel 2003 で同等のオプションがどこにあるかわかりません。
- 制限するセルを選択します。
- 適切な数値形式「hh:mm」でセルをフォーマットします。
- 「データ」リボン(メニューでしょうか?)で、「データの検証」を選択します。
- 「設定」の「検証基準」で、次のように設定します:
許可 = 時間
空白を無視 = はい
データ = 間
開始時刻 = 0:00
終了時刻 = 23:59:59
(愚かなことに、「24:00 未満」は受け入れられません) - ユーザー「エラー警告」、設定:
スタイル = 停止
タイトル = 時間入力
エラー メッセージ = コロンを使用して hh:mm 形式で時間を入力してください。 - 「OK」を押します。
答え2
古い投稿ですが、Google で検索すると役に立つかもしれません (また、私は Excel の専門家ではありません)
セルをカスタム フォーマットでテキストとしてフォーマットします。
00\:00
これにより、ユーザーは「:」なしでセルに軍事時間を入力できるようになります。次の数式を使用して、セル(例:E16)のデータ検証オプションをカスタムとして設定します。
=AND(ISNUMBER(E16),(VALUE(LEFT(TEXT(E16,"00\:00"),2))>=0),(VALUE(LEFT(TEXT(E16,"00\:00"),2))<=23),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))>=0),(VALUE(RIGHT(TEXT(E16,"00\:00"),2))<=59))
検証では、数値であるかどうか、次に時間値の HH 側が 0 から 23 の間であるかどうか、次に MM が 0 から 59 の間であるかどうかがチェックされます。
答え3
同じことを軍事時間に制限するために使用していますが、データ検証では太字(コロンの後の3桁)を受け入れ、正しくない例えば、13:44あなたの時間を無駄にして、誤って13:444、それはそれを取るだけでなく、時間を表示します20:24
それ20:24時間は、私が入力した時間(13)と444分を時間:分(7:24)に変換したものなので、希望する13:44それは与えます13:00+7:24または20:24。
これで、Excel が 444 分を 7:24 に変換する計算と理由がわかりましたが、これはデータ検証エントリでは発生しないはずです。これはデータ検証なので、444 を 44 に切り捨てるか、エラー メッセージを表示するはずです。
答え4
指定された列または範囲の時間入力を VBA (マクロ) で処理することをお勧めします。このマクロは、任意の 4 桁の値を適切な時間形式に変換します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A:A")) Is Nothing Then Exit Sub
Dim xHour As String
Dim xMinute As String
Dim xWord As String
Application.EnableEvents = False
xWord = Format(Target.Value, "0000")
xHour = Left(xWord, 2)
xMinute = Right(xWord, 2)
On Error Resume Next
Target.Value = TimeValue(xHour & ":" & xMinute)
On Error Resume Next
Application.EnableEvents = True
End Sub
注意
- と入力すると
1725
マクロによって に変換されます05:25:00 PM
。 Range ("A:A")
編集可能な場合は、Range("A1:A10")
またはRange("B10:C10")
もする必要があります。