shiawasenataiyouアクセスVBAでエクセルやCSVをインポートするにはツイートシェアはてブLINEPocketアクセス担当のまみです。何かいい方法ないのかなぁなんて思って。実は、ボタン1つでデータをインポートしてくれて、データを取り込んだらファイルを削除してくれる。そんな機能をVBAのコードを書くことで、可能になります!今回はインポートの方法をご紹介しますね。まとめファイルを準備しようまずはファイル名「インポート」で新規にファイルを作成しましょう。アクセスの使い方!ファイルを開く方法と保存の仕方2018年9月1日テーブル1は使用しないので削除しておきましょう。1「作成」タブから2「フォームデザイン」を選択し、表示されたフォームに3ボタンを4つ配置します。アクセスVBAでフォームにボタンをを配置しよう2018年9月18日デザインはお任せしますので、名前と標題を下記のとおりそろえておきましょう。ファイルを削除それから、インポート用のエクセルとCSVを用意しましょう。私は下記の記事で作成した「住所録」ファイルからエクスポートしました。アクセスVBAテーブルとクエリをエクスポートしよう!2018年10月17日エクセルをインポートではさっそく「btnエクセル」からコードを追加していきましょう。(はてな君)コードを書く位置ならわかるよ!クリック時のとこでしょ!1「btnエクセル」を選択した状態で、2「イベント」タブからクリック時に「イベントプロシージャ」を選択してコードの画面を表示しましょう。Sub」の間に下記のコードを追加します。"インポートしました"インポートする時にはacImportDelimを使用します。テーブル名を「T_住所録」にしているので、「T_住所録」テーブルがない場合は新たに作成され、「T_住所録」テーブルがある場合には「T_住所録」テーブルにインポートされます。“D:¥住所録.xlsx”の部分で、インポートするファイルの場所とファイル名を指定してるので、環境に合わせて変更してくださいね!それでは、フォームビューで動作確認してみましょう。(はてな君)「T_住所録」テーブルがインポートされた!けどフィールド名が変だし?(あいちゃん)そうなんです。このコードだと先頭行がデータとして取り込まれ、フィールド名がないF1、F2のような形になります。このコードは、先頭行のないデータを取り込む時ってことになりますね。(下の様なデータ)(はてな君)なるほど~範囲を指定してインポートする(あいちゃん)先頭行の無いデータだと、範囲を指定してインポートもできるんだよ!(はてな君)どうやるの?(あいちゃん)じゃあさっきのエクセルファイルをA9から取り込んでみようか。さっき取り込んだデータは削除するか名前を変更しておいてね。"インポートしました"(はてな君)へぇ範囲指定できるんだね。id=2]先頭行を項目名としてインポートするそれでは、先頭行を項目名としてインポートするように「btn先頭」に設定してみましょう。その前に、先程取り込んだ「T_住所録」は削除か名前を変更しておいてくださいね。Sub」の間に下記のコードを追加しましょう。“”」を付け加えることで先頭行を項目名としてインポートしてくれます。“”」は省略可能です。それでは、フォームビューで動作確認してみましょう。(はてな君)今度はちゃんと取り込まれた~!CSVをインポートそれでは次に、CSVをインポートできるように「btnCSV」に設定してみましょう。Sub」の間に追加しましょう。"インポートしました"エクセルの時はTransferSpreadsheetだったところがCSVになるとTransferTextになります。“”」をつけているので、先頭行のあるタイプの取り込みですね。(はてな君)エクセルの取り込みの時に「10」ってあるけど?(あいちゃん)「10」ってエクセルのバージョンのことで「acSpreadsheetTypeExcel12Xml」って書いてもいいんだよ。CSVには必要ないんだ。関連記事エクセルのバージョンについてはこちら!インポートしたらファイルを削除する(あいちゃん)データを取り込んだらファイル削除するようにってコードを書くんだけど、エクセルとCSVとどっちのファイルにする?(はてな君)えっと~。CSVで!それでは、「btn削除」ボタンのクリック時に「イベントプロシージャ」を選択してコードの画面を表示しましょう。Sub」の間に下記のコードを追加します。“D:¥住所録.csv”」を加えてあげればいいんです。これで、データをインポートしたらファイルが削除されます。必要なデータでしたらバックアップを取っておいてくださいね!(はてな君)動作確認してみたよ!ファイルが削除されてびっくりした!※アクセス制限の関係でインポートはできても、ファイルの削除ができない場合があります。フォームには「F_インポート」と名前をつけておきましょう。まとめインポートについて理解が深まったかと思います。ボタン1つでインポートできるようになると、他のことに時間が使えるようになりますね。