質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

5329閲覧

【Access】CSVをVBAでインポートしたい

zerobemy

総合スコア14

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/06/21 06:43

編集2021/06/22 07:51

お世話になっております。

CSVファイルをaccessのテーブルにインポートしたいです。
インポートする際にフォルダを選択できるダイヤログを表示させ、選んだファイルパスをテキストボックスに吐き出すような仕様にしたいです。
VBEの参照設定で「Microsoft Office Object Library」をチェックしましたが「’File Dialog’メソッドは失敗しました」とエラーが出てしまいます。
もし訂正箇所などあれば教えてください。

Private Sub コマンド11_Click() '変数定義 Dim intRet As Integer 'ダイアログ用変数 Dim GetFileName As String 'フルパスの値 With Application.FileDialog(msoFileDialogOpen) 'ダイアログのタイトルを設定 .Title = "ファイルを開くダイアログ" 'ファイルの種類を設定 .Filters.clear .Filters.Add "Microsoft Office Excelファイル", "*.csv,*.txt" .FilterIndex = 1 '複数ファイル選択を許可しない .AllowMultiSelect = False '初期パスを設定 .InitialFileName = CurrentProject.Path 'ダイアログを表示 intRet = .Show If intRet <> 0 Then 'ファイルが選択されたとき 'そのフルパスを返り値に設定 GetFileName = Trim(.SelectedItems.Item(1)) Else 'ファイルが選択されなければブランク GetFileName = "" End If End With '選択されたフルパスをテキストボックスへ表示 Form_order_upload.file.Value = GetFileName End Sub

お手数ですが宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sousuke

2021/06/21 07:52 編集

プログラムを書くときは「On Error Resume Next」は外しましょう。 「Application.FileDialog(msoFileDialogOpen)」はAccessだと動かないです。 ↑参照設定していれば動くみたいですね。すみません。
zerobemy

2021/06/21 07:57

「On Error Resume Next」は削除いたしました。 >参照設定していれば動くみたいですね 承知しました。 どこを訂正すればよいかお分かりであれば教えて頂きたいです。
guest

回答1

0

ベストアンサー

Application.FileDialog プロパティ (Access)
こちらによると、AccessではmsoFileDialogOpenをサポートしていないようです。

https://selifelog.com/blog-entry-247.html
その他ざっと調べた感じですと、こちらのように参照設定をすれば一応使用できる模様です。

また、On Error Resume Nextは基本的には使わないようにした方が良いです。エラーを全て無視してしまうので、コードにどんな問題があっても何も教えてくれなくなります。
今回の場合も、On Error Resume Nextを外しておけばエラーメッセージが出ていたはずで、「何も反応しない」というあやふやな状況にならずに済んだはずです。

投稿2021/06/21 07:57

Usirow

総合スコア364

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

zerobemy

2021/06/21 23:29

回答ありがとうございます。 「On Error Resume Next」についてもご指摘頂きありがとうございます。 以後気を付けたいと思います。 また参照設定しましたがなぜか「’File Dialog’メソッドは失敗しました」と表示されてしまいます。 こちらのコードは使えないのでしょうか??
Usirow

2021/06/22 07:59 編集

・参照設定するライブラリはあっていますか? ・msoFileDialogFilePickerなら参照設定なしに動くようです。見たところこちらでも同じことは出来そうですが、こちらではどうなりますか? (追記)サポートはされていますが参照設定は必要なようです。すみません。
zerobemy

2021/06/22 07:56

>・参照設定するライブラリはあっていますか? 「Microsoft Office Object Library16.0」にチェックが入っているので間違いはないかと思います。 >msoFileDialogFilePickerなら参照設定なしに動くようです。 こちらに変更してみましたがまだ「’File Dialog’メソッドは失敗しました」と出てしまいます。。
Usirow

2021/06/22 08:50

正しく参照設定されていれば動くはずなんですが、あと私の方で考えつくのは以下くらいしかありませんね…… ・FileDialogを、Application.FileDialog(3)で実行してみる ・FileDialog()内の綴りが正しいか確かめる ・Microsoft Office 16.0 Object Library以外のバージョンがあれば、そちらを参照設定してみる ・一旦保存して開きなおしてみて、参照設定が残っているか確かめる
zerobemy

2021/06/23 00:42

>・FileDialogを、Application.FileDialog(3)で実行してみる こちらで正常に実行できました!! 的確なご回答誠にありがとうございました。 またお力を貸して頂ければと思います。
Usirow

2021/06/23 02:06

一先ず動いたようで良かったです。 ただこの書き方ですとパッと見て何をしているのかわからないので、やはり参照設定したうえでmsoFileDialog~と書く方が望ましいとは思います。 msoFileDialog~が失敗してこれが動くということは参照設定が上手くいっていないのだと思うのですが、わたしではこれ以上はわかりません。申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問