Excelマクロでテキスト形式の日付を正しい日付形式に変換する方法

Visual Basic

Excelで「26/06/01」のように緑の三角がついたテキスト形式の日付を正しい日付形式に変換する場合、単純に表示形式を変更するだけではうまくいきません。この記事では、マクロを使って自動化する方法を解説します。

テキスト形式の日付とは何か

緑の三角マークがついている場合、そのセルはExcelが日付として認識していない「文字列」として扱われています。このため、日付形式に変更しても値自体が文字列のままで変化しません。

マクロで日付に変換する方法

文字列を日付として認識させるには、値に1を掛ける、もしくはDateValue関数を使う方法があります。マクロでは次のように記述できます。

Sub ConvertToDate()
    Dim c As Range
    For Each c In Selection
        If IsNumeric(c.Value) Then
            c.Value = DateValue(c.Value)
        End If
        c.NumberFormat = "yyyy/m/d"
    Next c
End Sub

手順:

  • 変換したいセルを選択
  • 上記マクロを実行
  • セルが正しい日付形式に変換されます

ポイント

  • セルが完全に文字列として扱われている場合は、Valueプロパティで数値化する
  • NumberFormatで表示形式を好みに合わせて変更可能
  • マクロを毎週更新作業に組み込めば、手作業を自動化できる

まとめ

Excelでテキスト形式の日付を日付型に変換するには、単純な表示形式変更では不十分です。マクロでDateValue関数や数値化を組み合わせることで、自動的に正しい日付形式に変換できます。これにより、毎週の資料更新作業が効率化されます。

コメント

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