ACCESS Excelファイル自動インポート機能(VBAコード公開)

Excelファイル自動インポート機能(VBAコード公開)

ACCESSにはExcelやcsvなどの様々なファイルからデータを取り込むことが可能です。

その中でもよく利用するのはExcelからのデータ取り込みではないでしょうか。

今回は、ACCESS VBAを使って、ExcelファイルをACCESSに自動インポートする機能の開発事例をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSで実際に作成したフォームやレポートを、その作成方法と共にご紹介していきます。

完成形

最初にExcelファイルインポート機能の完成形を紹介します。

非常に簡単な、ボタンが1つだけのフォームです。
インポートボタンを押すことで、Excelファイルを指定したテーブルに取り込むようにしてあります。

インポート対象のテーブルは以下のTMP_売上です。

ご覧のようにレコードは入っておらず、空の状態です。

ここでフォームのインポートボタンを押してみます。

ファイル選択ダイアログが表示されますので、インポートするExcelファイルを選択します。

インポート処理終了のメッセージが表示されます。

ここで、先ほどのTMP_売上テーブルを見てみましょう。

上記のようにテーブルにレコードが登録されていることが分かります。
これが、インポート機能の一通りの流れです。

フォームの作成

では、作成方法に入ります。
まずはフォームをデザインビューで見てみましょう。

インポートボタンのクリック時イベントに、イベントプロシージャを設定してあります。
このイベントプロシージャでインポート処理をさせています。

VBAコード

では、インポートボタンに設定したVBAのコードを紹介します。


Private Sub インポート_ボタン_Click()

    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "TMP_売上", getFileName(""), True
    
    MsgBox "インポートが終了しました。", vbInformation + vbOKOnly, "インポート終了"

End Sub

DoCmd.TransferSpreadsheetメソッドを使って、Excelファイルの取込を行うプロシージャです。
TMP_売上にExcelファイルからインポートを行うように指示しています。

getfileName(“”)というのは別途作成してあるプロシージャで、取り込むExcelファイルのフルパスを返すものです。

そして、インポート処理後にMsgBox関数で取込終了のメッセージを出しています。
インポート処理が終了がユーザーから分かりにくいため、処理終了時にメッセージを出すようにしておくとわかりやすいでしょう。

DoCmd.TransferSpreadsheetメソッドに関して詳しく知りたい方は、以下の記事もご覧ください。

TransferSpreadsheetの使い方

以上、Excelファイル自動インポート機能をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。