プロが教える店舗&オフィスのセキュリティ対策術

Access初心者です。2003を使用しています。

csvをマクロの「テキスト変換」で取り込ませています。取り込み時に定義どおりのテーブルを作成してくれるので、追加クエリを使い作業用テーブルに移動させ、処理にはそちらを使う仕組みにしています。
csv → データ用テーブル → 作業用テーブル(実際使うテーブル)

csv取り込みには「テキスト変換」マクロでファイル名にパスを設定していますが、この部分を固定パスではなく任意に指定できるようにしたいのです。(取り込みたいcsvが決まったパス、ファイル名で無い場合があります。)

「コマンドの実行:インポート」ですとダイアログが出て任意に取込ファイルが指定できますが、インポートウィザードが起動してしまいます。使用者がウイザードで適切な定義を選びデータ用テーブルを作成してくれればいいのですが、私がツールを作りPCに詳しくない人が使うのでインポートウイザードを避けたいと考えます。

どなたか、マクロ「テキスト変換」でファイル名をダイアログなどで、任意に指定できるような手法をご存じないでしょうか?
また、マクロでは無理なようでしたらVBAでしたら可能でしょうか?

よろしくお願いします。

A 回答 (1件)

VBA の例です。


あまりきれいばコードではありませんが
ファイルの種類やテーブル名を書き換えれば動きますね。
http://www2.moug.net/bbs/acm_v/20070423000011.htm

こちらも参考に。
http://support.microsoft.com/kb/824272/ja

あとは、VBE のヘルプで 「FileDialog」で検索。

ボタンのクリックイベントに直に書かずに
ファイル名を返すような Function Procedure にしておけば
他にもファイル名を取得したい場合に
Function を呼び出すだけで済みますから
その方がお勧めですが。
    • good
    • 0
この回答へのお礼

ありがとう御座います。
VBAをはじめて使いましたが、思ったとおりの動きができました!

質問させていただくまでの作りは、
前回取り込んだデータ用テーブルを消すマクロ
csvを取り込む「テキスト変換」マクロ
作業用テーブルを空にしてデータ用テーブルからデータを追加するマクロ
と、言うようにマクロを分けて作っていっせいに処理させていました。この、マクロを全てVBAに変換し1モジュールに統合後、御享受頂いたサンプルを差し込んで各ファイル種類とテーブル名を修正したところ、まさに理想どおりに動きます!!
※ダイアログ展開→パス取得→インポート側へ渡す、この流れを理解するまで時間がかかりましたがサンプルとヘルプを見ながら出来ました。本当にありがとう御座います。

Accessの手引き書等のおまけでVBA関連の資料が載っていて興味はあったんですが、VBAは私には敷居が高いなと思っていました。今回の件でもっと勉強したくなりました。(今回は使ったといえるレベルではないのでしょうけど・・・。)

大変助かりました。たびたび不躾ですが今後もよろしくお願いします。

お礼日時:2007/05/31 17:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!