• ベストアンサー
  • 暇なときにでも

MS AccessでExcelファイルのインポートは?

AccessのVBAでExcelファイルをインポートするにはどうすればいいのでしょうか? ちなみに DoCmd.TransferText acImportDelim, , "Tmp名簿", strInPutPath & "\名簿.csv", True (strInPutPathは、ダイアログから取得したパスです) では、CSVファイル(TXTファイル)しか読み込めません。 (もちろん、そのため拡張子が「.csv」にしていますが 読み込むファイルをテキストファイルにしたら「.txt」でもいいです) 「ファイル」メニュー(コマンド)の「外部データの取り込み」→「インポート」では、Excelファイルも読み込めるので悔しいです。 これをVBAでやりたいんですが。 よろしくお願いいたします。

共感・応援の気持ちを伝えよう!

  • 回答数1
  • 閲覧数367
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.1

TransferSpreadsheet メソッドを 使えばよいのでは。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます。 できました。 引数(パラメータ?)は、TransferTextとほぼ同じでしたが、Excelのタイプの指定がよくわかりませんでした。 とりあえず、引数を省略しましたが、OKでした。 あー、ホッとしました。

関連するQ&A

  • VBAでCSVファイルのインポートについて

    ACCESS2003でCSVファイルのインポートを行うVBAをご教授下さい。 ただし、CSVファイルは各項目がダブルコーテーションではさまれており、カンマはありません。 1行目にヘッダーがあります。 DoCmd.TransferText acImportDelim, , FileName, ImportPath, True ↑ これだと、うまくインポートされませんでした。 大変困っております。 どうぞよろしくお願い致します。

  • Access VBAでファイルのインポートについて

    あるディレクトリにAccessのmdbファイルを置き、「インポート」フォルダを隣に置きます。 このフォルダ内にCSVファイルを置き、それをVBAでテーブル「tbl_import」にインポートさせたいのです。 ちなみにインポート後はディレクトリ「インポート」下層のディレクトリ「インポート済」に移動させたいのです。 下記例文では「file.csv」と書いていますが、このファイル名はインポートの都度、常に変わります。 インポートさせるファイルは常に一つです。 「*」を用いれば出来ると思っていたのですが、うまくいきません。 良い方法を教示いただけませんか。 DoCmd.RunSQL "DELETE * FROM tbl_import" DoCmd.TransferText acImportDelim, "インポート定義", "tbl_import", CurrentProject.Path & "\インポート\file.csv", True FileCopy CurrentProject.Path & "\インポート\file.csv", CurrentProject.Path & "\インポート\インポート済\file.csv" Kill CurrentProject.Path & "\インポート\file.csv"

  • Access VBA CSVファイルのインポート

    お世話になります。 VBAにてCSVファイル(タブ区切り)をインポートするのに、 以下のように記述してますが、エラーとなります。 なお、インポート先のtempテーブルはインポートするCSVファイルの フィールドと同じ並びで予め作成したものです。 DoCmd.TransferText acImportDelim, , "temp", path, True 「実行時エラー2391 貼り付け先のtempテーブルには、'フィールド1_ フィールド2_フィールド3'フィールドがありません。」 このエラーを見る限り、フィールド1~3が一つのフィールドとして 認識されているように見受けられます。 タブ区切りなのか、カンマ区切りなのかを指定するようなパラメタは あるのでしょうか。 なお、当該CSVファイルをウィザードより手動でインポートする分には 問題無くインポート出来ます。 ************** インポートするCSVファイルはユーザーにより見出し(フィールド)の 並びが異なる場合がある為、インポート定義を予め作っておくことが できない状況です。 ご教授の程、宜しくお願い致します。

  • Access2010でVBAでのインポート

    csvファイルを指定したテーブルにインポートさせるのですが、この最初のフィールドに主キーを付与させようとしています。手動でインポートする際はメニューで指定するので主キーが付与されるのですが、VBAではcsvファイルそのままの状態でしかインポートされません。 このテーブルは、毎月更新させるので、一度データを削除してインポートさせます。 Mypath & Fdnは階層指定です。 いろいろネットで調べて下記の構文でインポートはできるのですが DoCmd.TransferText acImportDelim, "222 更新データ インポート定義", "更新データ【更新根拠】(当月)", Mypath & Fdn & "\222 更新データ【請求根拠】.csv", True, "" 手動でインポートする時指定する”主キーを自動的に設定する”はどのようにすれば適用されるのかがわかりません。 どなたか教えてください。よろしくお願いいたします。

  • AccessのマクロでCSVファイルをインポートする

    Accessのマクロ・VBAにてCSVファイルを インポートしたいのですが、うまくいきません。 DoCmd.TransferText acImportDelim, , "C:\Documents and Settings\yoshimi\My Documents\顧客マスタテーブル.csv", False 現在のコードです。 「オブジェクト'0.txt’が見つかりませんでした。 オブジェクトが存在していること、名前やパス名が正しいことを確認 してください。」 とエラーが表示されます。 過去ログを検索し、似たようなものを見つけ同じようにしたつもりです。 http://okweb.jp/kotaeru.php3?q=1691138 (回答のANo.1の定義の保存場所が分からずしていません) どこがおかしいのか教えていただきたいです・・・

  • Access2000のCSVファイルのインポートについて

    Access2000でCSVファイルをインポートしようと思っています。 インポート方法は、VBAで 「DoCmd.TransferText acImportDelim, , "テーブル名", "ファイル名"」を使用しています。 この時に、CSVファイルが次のようなデータです。 F1,F2,F3 0010,0200,0001A12 0011,0201,0021B12 (実際は、1000件近いデータです) これをインポートすると、 F1,F2,F3 10,200,1A12 11,201,21B12 となってしまいます。 頭の「0」を省きたくないのです。 文字列として取り込めないでしょうか? CSVのデータに""を自動でつける方法はないでしょうか? Accessの外部データの取り込みを使うと、文字列として指定できるのですが、VBAを使いワンクリックでデータを取り込もうとしています。 よろしくお願いします。

  • ACCESS TAB区切りのテキストのインポート

    お世話になります。 ACCESS TAB区切りのテキストファイルのインポートができません。 タブ区切りのテキストファイルを 外部データ⇒テキストファイル‥‥と進めばインポートできるのですが DoCmd.TransferText acImportDelim, , "カテゴリ", "D:\okwave\テキスト\カテゴリ.txt", True では 実行時エラー '2391' 貼り付け先の'カテゴリ'には'カテゴリコードカテゴリー名親カテゴリ成分フラグ階層'フィールドがありません となります。 このテキストファイルを以下のようにカンマ区切りにするとインポートされます。 ------------------------------------------------------ カテゴリコード,カテゴリー名,親カテゴリ,成分フラグ,階層 01,化粧品,01,0,0 ----------------------------------------------------- インポートしたテーブル DoCmd.TransferText acExportDelim, , "カテゴリ", "D:\okwave\テキスト\カテゴリ.txt", True でエキスポートすると次のように変化しています。 -------------------------------------------------- "カテゴリコード","カテゴリー名","親カテゴリ","成分フラグ","階層" "01","化粧品","01",0,0 --------------------------------------------------------------- PCは Windows7,Access2010 です。 よろしくお願いいたします。

  • CSVファイルをテーブルにインポートする

    1行目が項目名のCSVファイルをテーブルにインポートするため Private Sub CSVインポート_Click() DoCmd.TransferText acImportDelim, , "ブランド", "J:\ブランド.TXT" MsgBox ("CSVファイルインポート完了") End Sub を実行すると、f1,f2のフィールドがありませんとメッセージがあり F1,F2 のフィールドを追加し再度実行するとデータは f1,f2に入り 項目名もデータとして入っています。 1行目は項目名と宣言する設定はありますか。 よろしくお願いいたします。

  • ファイル名にドットを使ったファイルのインポート(ACCESSマクロ)

    Accessのマクロを作成しています。 ファイルを開くダイアログから複数ファイルを選択してCSVファイルをインポートするマクロを書きました。(最後に抜粋を記載します) インポートの行はこうなっています。 DoCmd.TransferText acImportDelim, , "traffic", varFname, True ファイル名に拡張子直前以外にドットを含むファイル名だと以下のエラーとなります。 実行時エラー '3011' オブジェクト'ドットを含むファイル名'が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。 余分なドットさえ含まなければ、50ファイル、7MBのインポートも問題ありません。 わけあってファイル名は変更できません。 ファイル名にドットを含む場合のインポートの書き方を教えてください。 宜しくお願い致します。 ===以下、抜粋=== '[ファイルを開く]ダイアログボックスを作成 Set dlgOpen = Application.FileDialog(msoFileDialogOpen) '[ファイルを開く]ダイアログボックスの初期設定 dlgOpen.AllowMultiSelect = True dlgOpen.Filters.Clear dlgOpen.Filters.Add "CSV", "*.csv" dlgOpen.InitialFileName = CurrentProject.Path '[ファイルを開く]ダイアログボックスを表示 ret = dlgOpen.Show '[キャンセル]ボタンを選択したときは、プロシージャを終了 If ret = 0 Then Exit Function End If 'カレントデータベースに接続 Set db = CurrentDb 'lineテーブルからレコードを取得 Set rs = db.OpenRecordset("line", dbOpenDynaset) '単数または複数選択されたファイル分だけ処理する For Each varFname In dlgOpen.SelectedItems 'CSVファイルをインポートする DoCmd.TransferText acImportDelim, , "traffic", varFname, True

  • ACCESSのテーブルへCSV形式のファイルを

    お世話になります。 ブランドテーブルへJドライブのルート内のCSV形式のファイルをインポートのため Private Sub インポート_Click() DoCmd.TransferText acImportDelim, , ブランド, j: ブランド.TXT End Sub で実行すると このアクションまたはメソッドを実行するには、「TableName/テーブル名因数が必要です。 とメッセージが帰ってきます。 これが解決すると インポートするCSVファイル6個ですが、ワンクリックで終わります。 宜しくお願いします。