"ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" マクロ アクションを使って、現在の Access データベース (.mdb または .accdb) とスプレッドシート ファイル間でデータをインポートまたはエクスポートすることができます。 また、Excel スプレッドシートのデータを現在の Access データベースにリンクすることもできます。 リンクされたスプレッドシートを使えば、Excel スプレッドシート プログラムからデータに完全にアクセスできる状態で、Access でスプレッドシート データを表示することができます。 Lotus 1-2-3 スプレッドシート ファイルのデータにリンクすることもできますが、Access ではこのデータも読み取り専用になります。
注: Access 2010 から、"TransferSpreadsheet/ワークシート変換" マクロ アクションは "ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" という名前に変更されました。
注: このアクションは、データベースが信頼されていない場合は許可されません。
設定
"ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" マクロ アクションには次の引数があります。
アクションの引数 |
説明 |
Transfer Type/変換の種類 |
変換の種類です。 マクロ デザイン ウィンドウの [アクションの引数] セクションの [変換の種類] ボックスで、[インポート]、[エクスポート]、または [リンク] を選びます。 既定値は [インポート] です。 注: Access プロジェクト (.adp) では、変換の種類として [リンク] はサポートされていません。 |
Spreadsheet Type/スプレッドシートの種類 |
インポート、エクスポート、またはリンクするスプレッドシートの種類です。 ボックスでいくつかのスプレッドシートの種類からいずれかを選ぶことができます。 既定値は [Excel ブック] です。 注: Lotus .WK4 ファイルに対するインポートおよびリンク (読み取り専用) は可能できますが、Access データをこのスプレッドシート形式にエクスポートすることはできません。 また、Access では現在、このアクションでの Lotus .WKS や Excel バージョン 2.0 からのデータのインポート、エクスポート、リンクはサポートされていません。 Excel バージョン 2.0 または Lotus .WKS 形式のスプレッドシート データに対してインポートやリンクを行う場合は、スプレッドシート データを、最新バージョンの Excel または Lotus 1-2-3 に変換してから Access にデータをインポートまたはリンクしてください。 |
Table Name/テーブル名 |
スプレッドシート データのインポート、エクスポート、またはリンクの対象となる Access テーブルの名前です。 データのエクスポート元となる Access 選択クエリの名前を入力することもできます。 これは必須の引数です。 [変換の種類] 引数で [インポート] を選ぶと、テーブルが既に存在する場合は、Access でスプレッドシート データがこのテーブルに追加されます。 それ以外の場合、スプレッドシート データを含む新しいテーブルが作成されます。 Access では、"ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" マクロ アクションを使う場合、SQL ステートメントを使ってエクスポートするデータを指定することはできません。 SQL ステートメントを使わずに、まず、クエリを作成し、"Table Name/テーブル名" 引数でクエリ名を指定する必要があります。 |
File Name/ファイル名 |
インポート、エクスポート、またはリンクするスプレッドシート ファイルの名前です。 フル パスを含めます。 これは必須の引数です。 Access からデータをエクスポートすると、新しいスプレッドシートが作成されます。 ファイル名が、既存のスプレッドシートの名前と同じである場合、Excel バージョン 5.0 以降のブックにエクスポートする場合を除き、Access では既存のスプレッドシートが置き換えられます。 その場合、エクスポートされたデータが、ブックで次に使用可能な新しいワークシートにコピーされます。 Excel バージョン 5.0 以降のスプレッドシートに対してインポートまたはリンクを行う場合は、"Range/範囲" 引数を使って、特定のワークシートを指定することができます。 |
Has Field Names/フィールド名の設定 |
スプレッドシートの先頭行にフィールド名を含めるかどうかを指定します。 [はい] を選ぶと、スプレッドシート データをインポートまたはリンクするときに、Access テーブルでフィールド名としてこの行の名前が使われます。 [いいえ] を選ぶと、先頭行は通常のデータ行として扱われます。 既定値は [いいえ] です。 スプレッドシートに Access のテーブルまたは選択クエリをエクスポートした場合、この引数での選択内容に関係なく、フィールド名がスプレッドシートの先頭行に挿入されます。 |
Range/範囲 |
インポートまたはリンクするセルの範囲。 スプレッドシート全体をインポートまたはリンクするには、この引数を空白のままにします。 スプレッドシートに範囲の名前を入力したり、インポートまたはリンクするセルの範囲 (A1:E25 など) を指定したりできます (A1.E25 構文は Access 97 以降では機能しません)。 Excel バージョン 5.0 以降のスプレッドシートからインポートまたはリンクする場合は、ワークシートの名前と感嘆符で範囲のプレフィックスを付けることができます。たとえば、Budget!A1:C7。 注: スプレッドシートにエクスポートする場合は、この引数を空白のままにする必要があります。 範囲を入力すると、エクスポートは失敗します。 |
解説
Access の選択クエリのデータをスプレッドシートにエクスポートすることができます。 Access ではクエリの結果セットがエクスポートされ、テーブルと同様に扱われます。
既存の Access テーブルに追加したスプレッドシート データは、テーブルの構造と互換性がなければなりません。
-
スプレッドシートの各フィールドのデータ型は、テーブルの対応するフィールドと同じである必要があります。
-
フィールドは同じ順序である必要があります (ただし、"Has Field Names/フィールド名の設定" 引数を [はい] に設定した場合を除きます。設定した場合、スプレッドシートのフィールド名はテーブルのフィールド名と一致する必要があります)。
このマクロ アクションには、[外部データ] タブをクリックし、[インポート] または [エクスポート] グループで [Excel] をクリックした場合と同様の効果があります。 これらのコマンドを使って、Access またはある種のデータベース、スプレッドシート、テキスト ファイルなど、データのソースを選ぶことができます。 スプレッドシートを選ぶと、一連のダイアログ ボックスが表示されるか、Access ウィザードが実行され、スプレッドシートの名前や他のオプションを選ぶことができます。 "ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" マクロ アクションの引数には、これらのダイアログ ボックスまたはウィザードのオプションが反映されます。
注: リンクされたスプレッドシートのクエリまたはフィルターを実行する場合、そのクエリまたはフィルターでは大文字と小文字が区別されます。
編集モードで開かれている Excel スプレッドシートにリンクすると、Access は、Excel スプレッドシートで編集モードが解除されるまで待ってから、リンクを完了します。タイムアウトになることはありません。
Visual Basic for Applications (VBA) モジュールで "ImportExportSpreadsheet/スプレッドシートのインポート/エクスポート" アクションを実行するには、DoCmd オブジェクトの TransferSpreadsheet メソッドを使います。