郵便番号をテキストファイルからExcelブックにインポートする場合、Excelが値を郵便番号ではなく数値として変換することは珍しくありません。これにより、先頭のゼロが郵便番号から削除され、後でデータを本来の目的に使用するときに明らかに問題が発生する可能性があります。

もちろん、1つの解決策は、郵便番号セルに使用される表示形式を変更することです。 (Excelは、[セルの書式設定]ダイアログボックスの[数値]タブから利用できる郵便番号用の特別な書式を提供します。)これは表示には機能する可能性がありますが、基になるデータにはまだ先行ゼロがありません。

基になるデータに実際に先行ゼロを含める場合は、セル内の情報を通過して先行ゼロを追加するマクロを使用するのが最適です。次のマクロはまさにそれを行います:

Sub MakeZIPText()

Dim ThisCell As Range

Application.ScreenUpdating = False     'Make sure format is text     Selection.NumberFormat = "@"

For Each ThisCell In Selection         'Strip the leading apostrophe, if any         If Left(ThisCell, 1) = "'" Then             ThisCell = Mid(ThisCell, 2, 99)

End If         'It's a 5-digit ZIP Code         If Len(ThisCell) <= 5 Then             ThisCell = "'" & Right("00000" & ThisCell, 5)

Else             ThisCell = "'" & Right("00000" & ThisCell, 10)

End If     Next ThisCell     Application.ScreenUpdating = True End Sub

マクロを使用するには、郵便番号を含むセルの範囲を選択してから、マクロを実行します。マクロは実際にセルの内容を変更します。セルには数値(元の問題の原因)は含まれなくなりますが、テキスト値は含まれます。これにより、先頭のゼロを郵便番号の先頭に表示できます。

注:

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

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

このヒント(9663)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。