Accessにインポートするためのデータの準備(Microsoft Excel)
データベースプログラマーの場合、Accessに配置するために「クリーンアップ」する必要のあるExcelファイルを取得することがあります。 2つの一般的な問題は、社会保障番号と郵便番号によって引き起こされます。これらは、Excelによくあるような数値ではなく、テキストとしてデータベースに保存するのが最適です。
(Excelでは、テキストとして保存されているためではなく、セルの書式設定のために数値が正しく表示される場合があります。)
範囲がExcelでテキストとしてフォーマットされ、先行ゼロが含まれている場合でも、Accessはこれらの値を数値に変換することがよくあります。
ただし、ラベルのように番号の前にアポストロフィが付いている場合、Accessは先頭にアポストロフィを付けずにテキストとして正しくインポートします。
Accessにインポートするための社会保障番号を準備するには、簡単な小さなマクロが役立ちます。これは、先行ゼロが存在し、セルにアポストロフィが設定されていることを確認するものです。マクロを使用するには、社会保障番号の範囲を選択してから、マクロを実行します。
Sub SSN2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) Else c = "'" & Right("000000000" & c, 9) End If Next c Application.ScreenUpdating = True End Sub
郵便番号の解決策は本質的に似ています。郵便番号を処理するマクロは、選択範囲の各セルをステップスルーし、テキストとしてフォーマットし、先頭にアポストロフィを追加し、先頭にゼロを挿入します。違いは、マクロは5桁または9桁の郵便番号がある場合も考慮する必要があることです。
Sub ZIP2Text() Dim c As Range Application.ScreenUpdating = False 'Format selected cells as text Selection.NumberFormat = "@" For Each c In Selection If Left(c, 1) = "'" Then 'strip the apostrophe, if any c = Mid(c, 2, 99) End If If Len(c) <= 5 Then c = "'" & Right("00000" & c, 5) Else c = "'" & Right("00000" & c, 10) End If Next c Application.ScreenUpdating = True End Sub
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(11228)は、Microsoft Excel 2007および2010に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。