【VBAリファレンス|実務向け】時刻を“:”なしで入力する|テンキー作業を爆速化する「ユーザー定義」活用術

スポンサーリンク

導入:なぜ「:」なし入力が重要なのか

実務で大量の時刻データを入力する際、いちいち「:」を入力するのは非常に手間ですよね。特にテンキーを使って数字を打ち込んでいるとき、「:」キーだけが離れた場所にあるため、指の移動距離が長くなり、入力効率が大幅に下がってしまいます。今回は、Excelの「表示形式」をカスタマイズすることで、数字4桁を打つだけで自動的に時刻として表示させるテクニックをご紹介します。

基礎知識:表示形式の「見た目」と「データ」の違い

Excelの表示形式は、セルの「見た目」だけを変える機能です。例えば「1230」という数値を入力しても、表示形式を設定すれば「12:30」のように見せることができます。ここで重要なのは、あくまで元のデータは「数値の1230」のままであるという点です。時刻データとしてシリアル値(Excelが計算に使う数値)に変換されるわけではないため、この後、時刻計算を行いたい場合には工夫が必要になる点に注意しましょう。

実装:ユーザー定義書式の設定手順

以下の手順で設定を行うことで、入力作業が劇的にスムーズになります。

1. 時刻を入力したいセル範囲を選択します。
2. キーボードの「Ctrl + 1」を押して、[セルの書式設定]ダイアログを開きます。
3. [表示形式]タブの[分類]から[ユーザー定義]を選択します。
4. [種類]のボックスに「0″:”00」と入力し、[OK]をクリックします。

これで、セルに「930」と入力すれば「9:30」、「1545」と入力すれば「15:45」と自動的に表示されるようになります。

サンプルプログラム:VBAで大量のセルに一括設定する

実務では、特定の列全体に対してこの書式を適用することが多いはずです。以下は、アクティブシートのB列(2列目)全体に対して、この設定を一括で行うVBAコードです。

サンプルコード

Sub SetTimeFormat()
‘ B列の2行目から最終行までを対象に書式を設定する
Dim targetRange As Range
Set targetRange = Range(“B2:B” & Cells(Rows.Count, 2).End(xlUp).Row)

‘ ユーザー定義書式を適用
‘ 0″:”00 は、4桁の数値の真ん中にコロンを挟む指定です
targetRange.NumberFormatLocal = “0””:””00″

MsgBox “B列の時刻表示設定が完了しました。”
End Sub

応用・注意点:現場で陥りやすい罠

このテクニックには、現場で注意すべき重要なポイントが2つあります。

1. 計算には使えない
先述の通り、これは「見た目」を変えているだけです。例えば「12:30」から「12:00」を引いて「30分」という結果を出すような計算は、そのままではできません。計算が必要な場合は、VALUE関数やTEXT関数を駆使して、一度「時刻シリアル値」に変換する必要があります。

2. 入力ミスへの配慮
「900」と打てば「9:00」になりますが、「999」と打っても「9:99」と表示されてしまいます。これは時刻としては誤りです。大量入力を行う場合は、データの入力規則を設定して、入力可能な数値を制限するなどの工夫を組み合わせると、よりミスを減らせるでしょう。

テンキー入力を多用する業務であれば、この「:なし」入力は間違いなく作業時間を短縮してくれます。ぜひ明日からの業務に取り入れてみてください。

タイトルとURLをコピーしました