• ベストアンサー

ACCESS VBA Excelにデータ出力できないパソコンがあります

ACCESS2000のVBAでExcel2002の環境で プログラムを作成しています。 ACCESSのテーブルのデータを Excelに出力するために参照設定で Microsoft Excel 10.0 Object Libraryに チェックをいれ Dim oXLS As New Excel.Application oXLS.Workbooks.Open Filename:=ファイル名 を実行すると 実行時エラー'48' DLL読み込み時のエラーです。 と表示されるパソコンがあります。 開発したパソコンや 複数のパソコンではこの現象は、 発生していません。 対応する方法を教えてください。 よろしくお願いします。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.3

こんにちは。KenKen_SP です。 > 正常に動作するパソコンと同じバージョンのExcelをインストール > 済みです。 OFFICE の再インストールを行ってみたらどうでしょう? レジストリ や 、DLL ファイルの欠損、破損などが原因である場合、 それで回復するかもしれません。 ちなみに、OFFICE のインストール先はディフォルトの場所ですよね?

life0305
質問者

補足

不思議なことが発生しました。 設定2、3日後 念のために 再度動作を確認したら エラーが発生せず 正常に動作しました。 設定は、変更していません。 再インストールしていません。 デフォルトの場所にインストールしたままです。 パソコンの電源を消してから 帰宅するので その間にレジストリなどが変更に なったのですか?

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

> パソコンの電源を消してから帰宅するのでその間にレジストリなど > が変更になったのですか? いえ、その可能性は低いと思います。単に、エラーとなったときは、 Excel がハングアップして、画面上に表示されていなくともフリーズ したままプロセスが残っていたので、エラーとなっただけではないで しょうか? 電源を入れなおすことで、リセットがかかった、、ってところ? ともあれ、解決したなら良かったですね。

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんにちは。KenKen_SP です。 そのパソコンには Excel がインストールされて いますか? インストールされていなければ、当然エラーです。

life0305
質問者

補足

正常に動作するパソコンと 同じバージョンのExcelを インストール済みです。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

>実行時エラー'48' DLL読み込み時のエラー アプリケーションで参照しているDLLが見つからない。DLL で参照している別のDLLが見つらない。などですが・・。 対処するにはDLLが存在することを確認する。 DLLを参照するときに絶対パスを指定する。 参照しているDLLを入手して別のDLLで使用できるようにする。 このくらいだと思います。

life0305
質問者

補足

ファイルを確認したら Excel.exeでした。 当然ファイルは、存在しましたし 他のパソコンとも 同じ設定でした。

関連するQ&A

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • ACCESSのVBAについて

    ACCESSのVBAを使って、データの集計・分析などをしてEXCELに出力、さらにそのEXCELを少しいじる、←このVBAをVBSで実行 といった事をしていたのですが、 会社の端末が一部Office2003から2010に変わったため、参照設定に不具合が出てきました。 内容は、元々2003で作成されたデータベースを2010で開くとVBAの参照設定が「Microsoft Access 11.0 Object Library」だったものは「Microsoft Access 14.0 Object Library」に変わるのですが、 「Microsoft Excel 11.0 Object Library」は変更されずに参照不可になってしまいます。 以前、別のところで同様の質問をした際に、 →「参照設定」をして、コードを作成したあと、コードに使われている定数を全部調べ上げて、変数宣言のコードを作成し、 参照設定のチェックを外して、宣言のコードを追加する、ということで、参照設定の対策をします。 といった回答を頂いたのですが、いまいち理解できていません。 以下のコードをEXCELの参照設定を外しても動くようにするにはどのようにしたら良いのでしょうか?よろしくお願いします。 Sub TEST() Dim xls As Excel.Application Dim wb As Excel.Workbook DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "TEST", "C:\TEST.xls", True Set xls = CreateObject("Excel.Application") Set wb = xls.Workbooks.Open("C:\TEST.xls") With xls .Sheets("Sheet1").Select .Range("A1").Value = "成功" .Visible = True End With End Sub

  • アクセスVBAの参照設定

    アクセスVBAからエクセルを使うためにVBAのツールメニュでExcel11.0 Object Libraryを参照設定すると、なぜか「参照不可」になってしまいます。 別のパソコンでは問題ありません。 原因は何でしょうか?どうすれば解決できるのでしょうか? よろしくお願いします。

  • AccessからExcelが開かない

    Access2000 の●●mdb から Excel2007 のAAA.xls を開こうとしますが オートメーションエラー(サーバーによって例外が返されました) が表示され開きません。 ●●mdb と AAA.xls は同じフォルダーに入れてます。 Accessの「参照設定」では、   Microsoft Excel 12.0 Object Library を選んでます。 ボタン(Cmd1)を押して表示させたいので Private Sub Cmd1_Click() Dim Appexcel As New Excel.Application Dim wb As Excel.Workbook Dim strfile As String strfile = CurrentProject.Path & "\AAA.xls" Set Appexcel = New Excel.Application Set wb = Appexcel.Workbooks.Open(strfile) Appexcel.Visible = True End Sub のように書いてますが、どうもうまく開いてくれません。 どうすれば表示させることができますか。

  • Access VBA 新しいシート作成

    Access VBAにてExcelファイルを編集するプログラムを作成しています。 Dim AppObj As Object 'Excel.Applicationオブジェクトの宣言 Dim WBObj As Object 'Excel.Workbookオブジェクトの宣言 Dim WsObj As Object 'Excel.WorkSheetオブジェクトの宣言 '実行時バインディング Set AppObj = CreateObject("Excel.Application") '編集を実施するワークブックを開く 'PathにはExcelファイルのフルパス、ExfにExcelファイル名が格納されています。 Set WBObj = AppObj.WorkBooks.Open(Path & Exf) 'Excelアプリケーションを表示する AppObj.Visible = True ※各Excelファイルはシートが1つだけ存在します。 この処理の直後に『数値』という名称の新しいシートを左から2番目に作成したいのですが、どのように記述すればよろしいでしょうか?

  • VBAでAccessからExcelのセルフォーマットを変更するには?

    タイトルのとおり、VBAでAccess2003からExcel2003のセルフォーマットを変更しようとしていますが、Excel上のVBAで利用できるWorksheet-Range-Selectやその他いくつかのメソッドが、Accessからは利用できません(Accessでは"Microsoft Excel 11.0 Object Library"を参照しています) 実現したいのは、AccessからExcelのセルの結合をすること・書式(文字列、日付等)を変更することなのですが、これらのメソッドを利用できないとなると、ほかに方法が思いつきません。 もしご存知でしたらお教えいただければ幸いです。

  • アクセスvbaでクリップボードにコピーの動作を実行

    アクセスvbaでクリップボードにコピーの動作を実行したいです。 エクセルなら、 Sub test() Dim buf As String Dim CB As New DataObject buf = "test" With CB .SetText buf ''変数のデータをDataObjectに格納する .PutInClipboard ''DataObjectのデータをクリップボードに格納する .GetFromClipboard ''クリップボードからDataObjectにデータを取得する Debug.Print .GetText ''DataObjectのデータを変数に取得する End With End Sub これが実行できるのですが、 どうやらアクセスだと Dim CB As New DataObject これがエラーになるようです。 Dim CB As Objectにすると .SetText buf で実行時エラー91になります。 (「オブジェクト変数またはWithブロック変数が設定されていません」) http://officetanaka.net/excel/vba/tips/tips20.htm によると、 「DataObjectオブジェクトはMSFormsのメンバです。使用するには、Microsoft Forms 2.0 Object Libraryを参照設定します。または、ブックにUserFormを挿入すると自動的に参照設定されます。」 なので、アクセスvbaの参照設定で「Microsoft Forms 2.0 Object Library」を探したのですが、 ありませんでした。 当方バージョンは2010です。 アクセスでは不可能と言うことでしょうか? ご教授よろしくお願いします。

  • VB2008でEXCELのセルデータが読めません

    VB2008でEXCELを開き、セルの内容を読み込もうとしましたが読み込めません。 EXCELのオープンとセルの読み込みは下記により行いました。 Dim strExcelFile As String 'エクセルファイル Dim xlApp As Excel.Application       Dim strExcelData As String xlApp = CreateObject("Excel.Application") xlApp.Workbooks.Open(Filename:=strExcelFile) xlApp.Visible = True 'EXCELは表示されている strExcelData = xlApp.Cells(3,4).ToString EXCELの3列4行には数値が入っていますが、strExcelDataには"System._ ComObject"というデータが読み込まれています。 ToStringは、これをつけないとデータの型が違うとエラーになります。 EXCELのデータは文字型と思っていましたがこれも判りません。 VBのMicrosoft Excel9.0Object LibraryをクリックしてOKしています。 原因の見当が皆目つかず困っています。

  • VBAでAccessからExcel

    VBAでAccessからExcelファイルを ダイアログで選択して開き転記をさせたい。 以下のように書いてみるとダイアログ表示までは 出るのですが、Excelは起動しません、 何かが足りないとは思うのですが ご指摘、ご教授お願いします。 Sub test2() Dim objxls Set objxls = CreateObject("excel.application") Dim myfile Dim xls myfile = objxls.Application.getopenfilename() Set xls = objxls.workbooks.Open(myfile)

  • VBAでのファイルの開き方について

    いつもお世話になっております。(エクセル2010を使用) エクセルVBAを学習中の者です。 ダイアログボックスを表示してファイルを開く・・・というコードを記述しているのですが、分からない点があるためご指導をお願いします。 Sub Sample1() Dim openFileName As String openFileName = Application.GetOpenFilename filefilter:="Microsoft Excelブック,*.xls?" Workbooks.Open Filename:=openFileName End Sub を実行するとコンパイルエラーの構文エラーが表示されます。 Sub Sample2() Dim openFileName As String openFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open Filename:=openFileName End Sub を実行すると正常に動作します。 私の現在の知識ではSample1も正常に動作するはずなんですが・・・ (※コードはVBEをコピペしています) 両者の違いはなんでしょうか?(※スペルの間違いは無いとは思いますが・・・) どうぞよろしくお願いいたします。