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

もちろん、1つの解決策は、郵便番号セルに使用される表示形式を変更することです。これは表示には機能する可能性がありますが、基になるデータにはまだ先行ゼロがありません。より良い解決策は、セル内の情報を通過して先行ゼロを追加するマクロを使用することです。

次のマクロはまさにそれを行います:

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トレーニングのソースです。

このヒント(2598)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。