【Access】エクセルのインポートをマクロで自動化する方法

この記事では、Accessへのデータインポートを自動化する方法を解説したい。

データのインポート作業は、定常業務になりやすく、自動化しやすい作業の一つである。

初心者にも分かりやすく説明するため、是非読んでみてほしい。

1.データベースファイルを作成する

最初にやるべきことは、Access上でデータベースファイルを作成することである。

データベースの器を作成する作業であり、これを行わないと始まらない。

なお、Accessの基本的な操作は、下記の記事にまとめているため、参考にしてほしい。

【超入門編】Microsoft Accessを初めて使う人が必ず覚えるべき構造と手順

2.エクセルファイルを作成する

次に行うことは、インポートするエクセルファイルを作成することである。

この記事では、ファイル名を、「abc.xlsx」として解説したい。

3.Access上でマクロを作成する

ここからがこの記事の本題である。作業を自動化するためには、Access上でマクロを組まなければならない。

どのようなマクロを組むべきか、まずは書式を下記に示す。

①DoCmd

DoCmdは、データベースオブジェクトをVBAから操作するために用意されたオブジェクトである。DoCmdオブジェクトのメソッドを利用すると、Visual BasicからAccessのアクションを実行できる。

代表的なメソッドには、以下のようなものがある。

メソッドアクション
OpenFormフォームを開く
Beep警告音アクションを実行する
Saveオブジェクトの保存をする
TransferSpreadsheetワークシートの変換をする
DoCmdの代表的なメソッド

詳細は、DoCmdのメソッドについては、MicrosoftのHPにも掲載されているため、合わせて参考にしてほしい。

②TransferSpreadsheet

TransferSpreadsheetは、Docmdの代表的なメソッドの一つである。

カレントの Access データベースまたは Access プロジェクト (.adp) とワークシートファイルとの間でデータをインポートまたはエクスポートできる。

③変換種類

インポートかエクスポートかを指定する。それぞれの指定方法は以下の通り。

インポートの場合:「acImport」

エクスポートの場合:「acExport」

④ファイル形式

Excelの形式を決定する。一番新しいExcelで使用した場合はacSpreadsheetTypeExcel12(”9”でも同じ意味)となる。

同じバージョンのExcelとAccessを使用したパソコンでインポート(エクスポート)するのであれば、省略可能。

⑤テーブル名(クエリ名)

インポート(エクスポート)の対象となるテーブルを指定する。

エクスポートの場合、対象にクエリを選択することでクエリの結果を出力することが出来る。

⑥作成するファイル名

インポート(エクスポート)の対象となるファイルとパスを指定する。

⑦フィールド名設定

1行目をフィールドとするかどうかを指定する引数。

Trueを指定すると1行目をフィールド名とし、Falseを指定するか省略すると1行目をフィールド名としない設定になる。

⑧Range(インポートのみ)

Excelファイルをインポートする場合のみ、セルの範囲の指定することができる。なお、シート全体を取り込むなら省略可能。

3-2.具体的な書き方

具体的な書き方は、以下の通りである。

ここでは、デスクトップに置いてある「abc.xlsx」をインポートする場合を例にする。

「ユーザー名」の部分は、自身のユーザー名に置き換えてほしい。

【書き方の例】
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel12Xml, “T_取り込みテーブル”, “C:\Users\ユーザー名\Desktop\abc.xlsx”, True, “Sheets1!A1:F100”

4.【まとめ】Accessの定常作業は、出来る限り自動化せよ

いかがだろうか。

今回は、Access上でデータインポートを自動化する方法を解説した。

Accessは定常作業が多く、マクロを習得するだけで、作業時間を大幅に減らせることだろう。

是非、参考にしてほしい。

↓↓この記事がお役に立ったならば、応援クリックを押していただけると大変嬉しいです↓↓

ブログランキング・にほんブログ村へ