Excelインポート時にエラーが発生する理由と解決方法

このQ&Aのポイント
  • Excelインポート時にエラーが発生する際、ファイルのアクセスや形式の正当性を確認する必要があります。エラーが発生するExcelファイルを修復や形式変更しても解決しない場合は、新規Bookを作成しデータをコピーする方法も試すことができます。
  • インポート時のエラーは行数やファイルサイズの問題に起因する可能性があります。試しに行数やサイズを削減してみてもエラーが解消しない場合は、他の要因が考えられます。
  • エラーが発生してもExcelファイル自体は通常通り開くことができ、修正や保存も可能です。エラーが解決しない場合は、作成し直すか別の方法でデータのインポートを行うことを検討してください。
回答を見る
  • ベストアンサー

Excelインポート時にエラー

お世話になります。 Access2010 Excel2010 あるExcelファイル(2003形式)をAccessにインポートした際、以下のエラーが出ました。 「ファイル '<パス\ファイル名.xls>' の情報にアクセスできません。ファイルが存在し、形式が正しいことを確認してください。 」 調べたところ以下の情報がありましたが、当該Excelファイル以外のインポートは問題無くでき、他のPCでも同症状が出るので、該当しないとの認識です。 http://support.microsoft.com/kb/283881/ja Accessへのインポート作業は毎日行っておりますが、先日より急にエラーがでるようになりました。 色々試したところ、 ・エラーの出るExcelファイルを開き、別の名前で保存し、そのファイルをインポートしてもエラー。 ・エラーの出るExcelファイルを「開いて修復する」で修復して保存し、そのファイルをインポートしてもエラー。 ・新規Bookを作成し、エラーの出るExcelファイルのシートコピーし、その新規Bookをインポートすると問題無し。 ・エラーの出るExcelファイルを開いて.xlsx形式で保存し、そのファイルをインポートすると問題無し。 ・上記の.xlsxファイルを.xls形式で保存し、そのファイルをインポートすると問題無し。 上記の結果から、作成し直すことによりエラーは解消されておりますが、原因としてはどのようなことが考えられますでしょうか。 インポート時にエラーの出るExcelは  ・フィールド(見出し)は100程度  ・行は50,000行程度  ・ファイルサイズは46MB です。 行数やサイズの問題かと思い、行を削除しサイズを減らした状態でインポートしてみましたが、やはりエラーとなってしまいました。 また、表外の列及び行も念のため削除しましたが状況変わらずでした。 なお、エラーの出るExcel自体は普通に開くこともでき、追加/修正/削除も可能で保存もできます。 ご教授の程、宜しくお願い致します。

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

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

Excel、Access 両方とも2010 でExcelファイルは全てXLSX形式で  1.AccessからExcelにエクスポート ← このファイルのインポートOK  2.上記Excelに書式をコピペ ← このファイルのインポートOK  3.上記Excelに対して追加/修正  4.上記ExcelをAccessにインポート ← このファイルのインポートNG した場合でも、インポート時にエラー発生・・・ということですよね? この問題は不明ですが、インポート時にデータが切り捨てられるのは http://okwave.jp/qa/q7543021.html の検証が役立つかもしれません。 なお、 >Docmd.transferText ・・・でインポート定義名(SpecificationName)を >利用できるのですが、TransferSpreadSheetでは無いですね。 ですが、 Docmd.RunSavedImportExport("保存した定義名") が2007からあります。 http://office.microsoft.com/ja-jp/access-help/HA010171498.aspx 私からは以上です。

naoto0216
質問者

お礼

NotFound404 ご回答ありがとうございます。 >http://okwave.jp/qa/q7543021.html についてですが、これは以前私が投稿させて頂いたものですね(笑 もう2年経っているのに未だ検証もしておらず。 Office2003のサポート切れる前に対処しないとと思っておりましたが、なんだかんだでズルズル2003を使っている次第です。 インポートNGの件ですが、水曜は問題なくインポートでき、昨日はNGでした。 Excelの更新は普段通りにやったということなので、何か特別に対処してインポートできたという訳ではありません。なので、余計に訳分からなくなってきました。 とりあえずもう少し調べたいと思います。 あと、近日中に2010に切り替えるようにしたいと思います。 色々ありがとございました。

その他の回答 (3)

回答No.3

なるほど、失礼しました。 XLSX形式でエクスポートするわけには行かないのでしょうか? 2003ユーザーの存在? XLS形式(互換モード)の何かがマズいのでしょうかね。

naoto0216
質問者

お礼

NotFound404さま ご回答ありがとうございます。 >XLSX形式でエクスポートするわけには行かないのでしょうか? 説明不足で申し訳ございません。 備考フィールドの文字数が1000程あるセルがあり、Access2003だと問題無くインポートできますが2010だと途中で文字が切れてしまう不具合がありました。 よって、通常の運用ではインポートする際はAccess2003を使用しております。 テストの際は途中で文字が切れてもよいので、Access2010を使用しました。 なお、インポート時に2003、2010ともに同じエラーが出ます。

回答No.2

Excelも使いまわしていると段々とゴミが溜まって行きます。 私のお腹のように気が付くと。。。 なので試された処理が必要になってきます。↓ http://excel-master.net/file-operation-and-save/file-diet/

naoto0216
質問者

お礼

NotFound404さま ご回答ありがとうございます。 aokiiさまに返信させて頂きました通り、一つのExcelファイルをずっと使い続けている訳ではございません。 追加/修正したExcelをAccessにインポートし、情報を付加後、Excelにエクスポートし、そのファイルを追加/修正し・・・といった運用です。なので、毎日再作成しているのと同じかと思われます。 なお、AccessからエクスポートしたExcelは罫線や書式設定がされていないため、追加修正したExcelから書式をコピペしてます。 この書式のコピペが原因かと思ったのですが、エクスポート直後のExcelに書式をコピペして、そのファイルをインポートしてみたらエラーになりませんでした。 なので、まとめると   1.AccessからExcelにエクスポート ← このファイルのインポートOK  2.上記Excelに書式をコピペ ← このファイルのインポートOK  3.上記Excelに対して追加/修正  4.上記ExcelをAccessにインポート ← このファイルのインポートNG となります。 Excelを編集してるときに何か不具合(ファイル破損?)が生じているのかもしれません。

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

原因としてはxlsとxlsxの互換性問題が考えられます。フィールド(見出し)、行、ファイルサイズとも大きいですね。 2003は、256列、65536行、1セルあたりの文字数は32767文字です。 10MBを超えるようなファイルを使うと破損確立が高くなり危険です。

naoto0216
質問者

お礼

aokiiさま ご回答ありがとうございまいます。 確かに列数、行数ともに多いのですが、6、7年前から先週まで問題なく運用できておりました。 日々Excelファイルに追加/修正を行っている為、以前にくらべるとサイズは大きくなってますが。。 なお、一つのExcelファイルをずっと使い続けている訳ではなく、追加/修正したExcelをAccessにインポートし、情報を付加後、Excelにエクスポートします。このファイルを翌日使って追加/修正し・・・という運用です。 質問にも記載致しましたが、数千行を削除してサイズを減らした状態でインポートしてみましたが、それでもエラーとなったので、確かにサイズが大きくなることによって破損しやすくなるのかもしれませんが、今回の色々試した結果からするとサイズはあまり関係ないように見受けられます。

関連するQ&A

  • Excelワークシートがインポートできない

    Excelのワークシート 拡張子xls ファイルを、Access2010の外部データ - excelワークシートのインポート機能を使ってインポートしようとすると、 "ファイル*****.xlsの情報にアクセスできません。ファイルが存在し、形式が正しいことを確認してください。" というメッセージが現れ、インポートすることができません。 先週までは、同じことを問題なく、実行できていました。異なるのは、インポートするファイル名とファイル内のデータの中身だけで、ファイル構造、形式は同じです。 ちなみに、 ファイル名を変えてみましたが同様のエラーがでます。 また、インポートするxlsファイルをExcelで開いて、古いバージョンで保存、その後、再度そのファイルを開き、元のバージョンで保存すると、正常にインポートできるようになります。 先週、うまくインポートできていたので、その時使ったxlsで試したところ問題なくインポートできました。 ネット検索してみると、同様の質問がいくつかあるようですが、解決策が明記されていません。 どなたか解る方がいらっしゃいましたら、教えてください。

  • 【Access】Excelインポート時にエラー

    お世話になります。 OS:XP Pro Access2003 Accessのフォーム上よりExcelをインポートするように作りました。 インポートする際にローカルにある空っぽのテーブル(データ型のみ指定有り) をコピーし、そこにExcelのデータをインポートするようにしてます。 今まで特に問題はないので、プログラム的には問題なさそうです。 で、今日Excelをインポートした際に「キー違反のため、0件のレコードが失われ、0件のレコードが削除されました」というエラーが発生しました。 フォームからではなくファイル⇒外部データの取り込み より当該Excelをインポートしても特にエラーにはならずインポートできました(A)。 エラー時に「はい」を選択すると、とりあえずインポートはされるのですが(B)、AとBを比較するとBの方が2レコード少ないことがわかりました。 その2レコードのIDを調べ、ExcelからそのID2行を削除しインポートしたところエラー発生せず。 とりあえず何かしら問題のある行は分かったのですが。。  ・その行のID以外のセルを全てまっさらにして、インポートしてもエラー。  ・この行の書式がおかしいと思い、別の行の書式をコピーしてはりつけ後インポートしてもエラー。  ・この行のリスト外のセルに余計なゴミがあるかもと思い、リスト外の列を全て削除するもエラー。  ・いったんこの2行をコピーして別シートに貼り付け。その後、リストから2行削除し、2行挿入して   コピーしておいた2行を値で貼り付け。で、エラー。  ・IDが重複していないことを確認。 今までエラーが出たとしても上記対処でエラーは解消されていたのですが、今回ばかりは何が原因かわかりません。 どのようなことが考えられますでしょうか。ご教授の程よろしくお願い致します。

  • エクセルからアクセスにインポートする際のエラーについて

    こんにちは。 エクセルで作成された従業員台帳を、アクセスにインポートしたいのですが、エラーが出て困っています。 インポートの為のフォームを作り、参照ボタンでそのエクセルファイルを選択してフルパスを取得し(こちらの動作はOKです)、実行ボタンでそのファイルをインポートする、という方法をとろうと思います。 transferspreadsheet で、エクセルのファイル(.xls)は問題なくいくのですが、csv形式のファイルを指定して同じようにインポートすると、 実行時エラー 3274 外部テーブルのフォーマットが正しくありません。 となってしまいます。 書いているコードは、 DoCmd.TransferSpreadsheet acImport, 8, "従業員台帳(アクセス側でのテーブルの名前)", "上記画面で取得したフルパス", True(一番上の項目をフィールド名として使用します), "" です。.xlsでも.csvの形式でもインポートできるようにしたいのです。 環境は、winXPpro、Access2000、Excel2000 です。 よろしくお願いします。

  • エクセルをアクセスへインポートするとエラーになりました

    エクセルファイルをアクセスにインポートしようとしたら、 エラーによりインポートできませんでした。という内容のメッセージがでます。エクセルファイルの内容を新しいブックに貼り付けてみたりしたのですが、やっぱり同じエラーになります。こういうエラーが出るときはどういう原因がかんがえられますか?教えてください。

  • Access97 Excelファイルのインポート

    はじめまして、こんにちわ。 早速ですが、質問させてください。 Access97で既存のテーブルにExcelファイルをインポートした際にエラーがでてインポートできないファイルがありました。その原因を調査している次第です。 Excelファイルは様々な担当者に作成いただく予定ですので、エラーの再現性を確認して、原因となる作業を予め禁止しておきたいと考えております。 (1)ファイル→外部データ取込→インポートからインポートするExcelファイルを選択し、インポートボタンを押したところ、『ファイル○○にアクセスできません。このファイルが存在するか、またファイルの形式が正しいか確認してください』と言うエラーが出ます。 実際にそのファイルは開けますし、同じように作成したファイルはインポートできるものもあります。 中身を全てコピーし、新規作成したExcelファイルに貼り付けて名前をつけて保存したものをインポートすると、問題なくインポートできました。 どういった作業をすると、上記エラーが出るようなファイルになってしまうのでしょうか。 (2)ファイル→外部データ取込→インポートからインポートするExcelを選択し、インポートボタンを押した後、ワークシートインポートウィザードで『先頭行をフィールド名として使う』をチェックすると、『先頭行にAccessフィールド名に使用できない文字が含まれています。』というエラーが出ます。 調べてみると、空白の列がフィールドとしてインポートされるようになっています。Excel上では何も表示されていない列で、その列を削除すればエラーがなくなります。 どういった作業をすると、空白の列や行がインポートされるようになってしまうのでしょうか。 お手数ですがよろしくお願い致します。

  • 【Access】Excelインポート時にエラー

    お世話になります。 <環境>  Windows7 Pro  Excel2010  Access2003 Excelに番号、コード、数量の3列(A~C列)の表があります。その表をAccessにインポートしようとすると実行時エラー2391となります。 インポートはフォーム上のボタンよりダイアログを表示し、Excelを選択させてます。 で、手動でファイル⇒外部データの取り込み⇒インポートで当該Excelを選択し、「先頭行をフィールド名として使う」にチェックを入れタイミングで「先頭行に、Accessのフィールド名として使用できないデータが含まれています。フィールド名として有効な名前が自動的に割り当てられます。」と表示されることから、表外の箇所まで取り込もうとしてエラーになっているかと思われます。 しかし、Excel上で見ても表外の箇所は空白セルで何も入力されてません。 単純に表外の認識されていた5列(D~H)を削除すると、問題なくインポートできました。 ※いったん罫線を消して再度引きなおしてもダメでした。 このインポートしようとしているExcelは、元々別のExcelシートより必要な箇所をコピペして作成したものです。なので、コピペ作業の際に目に見えないゴミのようなものが入力?されてしまったのかもしれません。 また、Excel2010で作成したものを2003形式で保存しています。なので、その辺でのバグなのかもしれません。。 ※インポートする為のExcelは客先にて作成している為、コピペ作業はどのように行われているかは不明です。こちらで検証すると問題なくインポートできます。 上記と同じような現象になった方はいらっしゃいますでしょうか。また、そのときの回避策などございましたらご教授頂けたらと思います。

  • Access2000インポートエラー(できない)

    win7 Pro リカバリ後office2003インストールしてwindows updateしたらAccessで Excelファイルをインポートすると「ファイル '<ファイル名.xls>' の情報にアクセスできません。ファイルが存在し、形式が正しいことを確認してください。 」とでてエラーする。いろいろググッテ調べた内容は解決にいったてないので・・・わかる方よろしく、アドバイス願います。ちなみにwin update前は問題なく動作するのですが。

  • Access から Excelのシートをインポート時エラー

    Access の既存のテーブルにExcelのスプレッドシートからデータをインポートするため次のコマンドを実行すると、 F1フィールドがない旨のエラーメッセージが表示されます。 DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "アクセスのテーブル名", "インポート元のエクセルファイル名.xls", False ここで、F1フィールドとは何でしょうか。 Excelのシートの1行目にAccessのテーブルの項目名と同名の項目名を挿入しておけば、上のコマンドの最後の引数をTrueにすればインポートは成功します。項目名のないスプレッドシートはインポートできないのでしょうか。 ご存知の方、教えてください。

  • アクセスにエクセルのデータをインポートしたいのです

    こんにちわ。 お世話になっております。 アクセス2003にエクセル2007のデータをインポートしたいのですが、入りません。 また、拡張子xlsxをxls,dbf等に変換する方法も教えていただければ幸いです。 詳しい方、ご教示いただけませんでしょうか。 よろしくお願いいたします。

  • Excel → Access データをインポート

    OS WinXP Pro SP2 Office 2000 SP3 はじめまして。 マクロ(Excel VBA)を記述しているExcelファイル(Xls_Macro.xls)とインポート用データのExcelファイル(Xls_Data.xls)は別々のファイルになっていて、マクロを実行するとExcelファイルとインポート用データのExcelファイルのデータをAccessファイル(Access.mdb)にインポートする仕組みを開発しています。 インポート用データのExcelファイル(Xls_Data.xls)をADOで接続しレコードセットでデータを取得し、Accessファイル(Access.mdb)もADOで接続しレコードセットの「.AddNew」でAccessファイル(Access.mdb)に更新しようと考えています。 この考え方で問題ないのでしょうか!? もっと簡単な方法があるという方や、何か良い方法をお持ちの方 いらっしゃいましたら、よろしくお願いいたします。

専門家に質問してみよう