• 公開日:

エクセルで数字(シリアル値)を日付に変換する方法

エクセルでは、日付を連番の数字で表す「シリアル値」という値が設定されています。

シリアル値は「45032」や「35349」などの数字であるため、何月何日を表すのかを確認するためには数値を日付に変換する必要があります。

この記事では、エクセルで数字(シリアル値)を日付に変換する方法をご紹介します。

エクセルで数字(シリアル値)を日付に変換する方法

エクセルで数字(シリアル値)を日付に変換する方法をご紹介します。

シリアル値とは、エクセルにおいて日付を連番で数字にしたものになります。今回は上記の画像のようにA2セルに入力されたシリアル値を日付に変換します。

シリアル値が入力されたセル(例:A2セル)、②ホームタブ、③数値の書式の▼の順に選択します。④短い日付形式を選択します。ショートカットキーのCtrl+Shift+3を押しても同様の操作が可能です。

すると数値(シリアル値)が日付に変更され、「2023/9/12」と表示されました。「2023年9月12日」など「◯年◯月◯日」の形式にしたい場合は、表示形式で「長い日付形式」を選択しましょう。

VBAで数字(シリアル値)を日付に変換する方法

VBAを使って数字(シリアル値)を日付に変換する方法をご紹介します。

VBAを設定しておくことで大量のデータがあっても手軽にシリアル値を日付に変更することができます。

開発タブを表示させる

今回はVBAを使って設定を行います。

VBAの設定には「開発タブ」が必要ですが、デフォルトでは表示されていないため下記の記事を参考に設定を行いましょう。

エクセルの開発タブを表示する方法

シリアル値を入力しておく

今回は上の画像のようにA2セルとB2セルのシリアル値を日付に変換します。

複数のセルを範囲選択してシリアル値を日付に変更できるコードを設定します。

Visual Basicを開く

開発タブ、②Visual Basicの順に選択します。

標準モジュールを追加する

挿入、②標準モジュールの順に選択します。

コードを貼り付ける

標準モジュールが挿入されました。

以下のコードをコピーアンドペーストで貼り付けて、②上書き保存ボタンを押します。

Sub シリアル値を日付に変換するVBA()
    Dim Cell As Range
   
    For Each Cell In Selection
        If IsNumeric(Cell.Value) Then
            Cell.Value = CDate(Cell.Value)
            
            Cell.NumberFormat = "yyyy/mm/dd"
        End If
    Next Cell
End Sub

Cell.NumberFormat = "yyyy/mm/dd"」の"yyyy/mm/dd"は、日付を「どう表示するか」を指定していてアレンジが可能です。

以下の表は日付形式の設定方法と、どのような形式で日付が表示されるかの一例をまとめたものです。

表を参考に「Cell.NumberFormat = "yyyy/mm/dd"」のダブルクォーテーションの中を変更しましょう。

表示形式実際の表示
"yyyy/mm/dd"2023/9/12
"m/d/yyyy"12/9/2023
"yyyy年m月d日"2023年9月12日
マクロ有効ブックで保存

「名前を付けて保存」ダイアログボックスが表示されます。

任意の保存場所(例:デスクトップ)を選択し、②任意のファイル名を入力します。

③ファイルの種類で「Excel マクロ有効ブック」を選択して、④保存ボタンを押します。

マクロを開く

以上でVBAの設定は完了しました。Excelに戻ります。

シリアル値が入力されたセル(例:A2セルからB2セル)、②開発タブの順に選択します。

マクロを選択します。

マクロを選択して実行ボタンを押す

マクロダイアログボックスが表示されます。

登録したマクロ(例:シリアル値を日付に変更するVBA)を選択し、②実行ボタンを押します。

シリアル値が日付に変更される

VBAでシリアル値を日付に変換することができました。