ACCESS2013のVBAでEXCELを操作する際のオートメーションエラーについて

このQ&Aのポイント
  • ACCESS2013のVBAでEXCELを操作する際に、オートメーションエラーが発生している場合があります。
  • 特に、EXCELが複数のバージョン(2010と2013)がインストールされている場合にエラーが発生することがあります。
  • このような場合、エラーが出ている端末で使用されているEXCELのバージョンを確認し、適切なバージョンを指定することで問題を解決することができます。
回答を見る
  • ベストアンサー

ACCESS2013のVBAで、EXCELを操作

ご質問させて頂きます。 ACCESS2013のVBAで、EXCELを操作するために 下記のようにしています。 ------- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Dim Rw As Integer Dim SQL As String Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 ↓↓↓オートメーションエラー Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\ひながた.xls") ------- 上記のところでオートメーションエラーになってしまいます。 しかし私の端末ではエラーは出ません。 問題と思われるのは エラーが出る人の端末は、 EXCELが2010と2013と 2つのバージョンがインストールされていることです。 このようなことでエラーが出てしまうことはあるのでしょうか?

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

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

Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 ↓↓↓オートメーションエラー Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\ひながた.xls") を Set oWkb = getobject(CurrentProject.Path & "\ひながた.xls") Set oApp = oWkb.application oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 だとどうでしょ? 結果はご報告願います。 当方も複数バージョンの同居はしていません。

sato1221
質問者

補足

レスが遅れまして大変に申し訳ございません。 ご回答ありがとうございます。 この症状が出ている端末が当方ではないため なかなか確認できません。 後日確認して、ご報告致します。

その他の回答 (1)

  • shut0325
  • ベストアンサー率40% (490/1207)
回答No.1

Access/Excelともに2010しか入れていないので、有効かどうかはわかりませんが、Excelのバージョンを指定してみてはどうでしょうか? 2010→14 2013→15だったと思います。 2010ならば、 Set oApp = CreateObject("Excel.Application.14") といった感じです。

sato1221
質問者

お礼

レスが遅れまして大変に申し訳ございません。 ご回答ありがとうございます。 確認しましたが エラーはなくなりませんでした

関連するQ&A

  • SaveAsでバージョンを指定して保存する方法

    SaveAsでバージョンを指定して保存する方法が分かりません。 WINDOWS7 ACCESS2010のVBAから、EXCEL2000用のファイルとして保存するために、以下のようにしました ------------ Dim oApp As Object Dim oWkb As Object Dim oWks As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True oApp.DisplayAlerts = Flase '確認メッセージの非表示 Set oWkb = oApp.Workbooks.Open(filename:=CurrentProject.Path & "\" & MyFile, PassWord:="") ・ ・ ・ ↓ここで「オブジェクトがありません」と言うエラー oWkb.SaveAs CurrentProject.Path & "\" & MyFile, FileFormat:=xlExcel9795 どのようにしたら宜しいですか?

  • アクセスからエクセルを開いてデータを取得するには?

    こんにちは。 MS AccessからExcelを開いて、Excel上のデータを取得したいのですが、下記のようにしたらエラーとなりました。CellsがNGみたいなのですが、AccessではCellsは使用出来ないのでしょうか? 宜しくお願いします。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.Visible = True On Error Resume Next oApp.UserControl = True oApp.Workbooks.Open Filename:="C:\TEST\Book1.xls" GYO = 1 Do KI = Cells(GYO, 1).Value MsgBox KI GYO = GYO + 1 Loop Until Cells(GYO, 1) = ""

  • ACCESS VBA からのワードファイルの起動

    ACCESS97を(未だに!)使用しています。 これから、VBAでワードの既存ファイルを起動したいと考えています。その際、ワードを新規に立ち上げることなく、表示して編集したいわけですが、どうしても新規に起動してしまします。 これまで試したのは、 Dim oApp As Object Set oApp = GetObject("", "word.Application") oApp.Visible = True oApp.Documents.Open FileName:="C:\filename.doc" および Dim oApp As Object Set oApp = CreatObject("word.Application") oApp.Visible = True oApp.Documents.Open FileName:="C:\filename.doc" などです。 しかし、すでにワードが起動していても、どうしても、新たにワードを立ち上げてしまいます。 解決策はあるでしょうか? ちなみにエクセルだと、GetObject で既に起動しているエクセルに追加でアプリが表示されます。

  • 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 のように書いてますが、どうもうまく開いてくれません。 どうすれば表示させることができますか。

  • 新しいブックを名前を付けて保存したいのですが

    ACCESS2000からEXCEL2000をADOで操作しています。 以下の処理は開いている(アクティブ)シートを 新しいブックにコピーしています。 ----- Dim oApp As Object Dim oWkb As Object Dim oWks As Object Set oWkb = oApp.Workbooks.Open(CurrentProject.Path & "\Excel一覧.xls") Set oWks = oWkb.Worksheets("Sheet1") '新しいブックにシートコピー oWks.copy ----- お尋ねしたいのは 新しいブックを名前を付けて保存したいのですが どのようにすればいいですか?

  • Access2000のVBAで上書き更新

    お世話になります。 Access2000のVBAで作成しております。 Excelに記載した情報をAccessのテーブルに 取り込むために下記のソースを作成致しました。 既にテーブルに主キーが重複しないものを取り込むときは 正常に処理が走るのですが、 主キーが重複する場合は、重複する旨メッセージを出して 処理が止まります。 どのようにソースを修正すれば、「主キーが重複する場合、上書き更新」 するように処理が走るのでしょうか? 以上宜しくお願い致します。 --------------ソース------------------------------ Dim rs As New ADODB.Recordset Dim oApp As Object Dim iRow As Long Set oApp = CreateObject("Excel.Application") oApp.Workbooks.Open Filename:="hogehoge.xls" rs.Open "テーブル", CurrentProject.Connection, adOpenForwardOnly, adLockOptimistic iRow = 2 ' ★ While( ループ )   rs.AddNew   rs("ID") = oApp.Cells(iRow, 1)   rs("名前") = oApp.Cells(iRow, 2)   rs.Update   iRow = iRow + 1 Wend rs.Close oApp.Quit Set oApp = Nothing

  • エクセルvba

    エクセルvbaなのですが Sub test() Dim xlApp As Object Dim xlBook As Object Set xlApp = CreateObject("Excel.Application") Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) 'コード・・・ Set xlApp = Nothing Set xlBook = Nothing End Sub これだと Set xlBook = xlApp.Workbooks.Open(ActiveWorkbook.FullName) の部分で、エラーになります。 実行時エラー1004です。 自身ファイルをオブジェクトに格納して操作したいのですがどうすればいいでしょうか?

  • ACCESSからExcel操作

    アクセスのクエリーにて作成したデーターをエクセルにインポートをしてその後直接アクセス上から条件を入れてオートフィルターを掛け、条件にあったデーターのみセルに色をつけたいのですがオートフィルターで絞った後の処理がうまく出来ません。 Dim DB As DAO.Database Dim xlApp As Object Dim xlbook As Object Dim xlsheet As Object Dim strXlsS As String Dim strExSheet As String   インポート処理はOK   ここからアクセス上で操作をしたい。 strXlsS = "ファイル名フルパス" strExSheet = "シート名" Set xlApp = CreateObject("Excel.Application") xlApp.Visible = True 'エクセル可視、不可視選択 Set xlbook = xlApp.workbooks.Open(strXlsS) Set xlsheet = xlbook.worksheets(strExSheet) xlsheet.Range("A1").Select xlsheet.Range("A1").AutoFilter xlsheet.Range("A1").AutoFilter Field:=8,Criteria1:="条件" ここまでは出来ました。 この後エクセル上では Range("A1:J37").Select と言う感じで選択するのですが、ここをどの様にやれば良いか教えて欲しいのです。 色々と検索をして SpecialCells を使う事までは解かり xlsheet.AutoFilter Range.Columns(1).SpecialCells(xlCellTypeVisible) とやってみたのですが 実行時エラー'424': オブジェクトが必要です。 とエラーになってしまいます。 参考先でもなんでも良いので宜しく御願いします。

  • アクセスからエクセルへの処理

    Private Sub エクスポート_Click() Dim myExcel As Object 'エクセルに出力 DoCmd.TransferSpreadsheet filename:=CurrentProject.Path & "\分析素材\test.xls", _ tablename:="HJEX016", _ transfertype:=acExport 'ファイルを開く Set myExcel = CreateObject("Excel.Application")   myExcel.Visible = True ★ myExcel.workbooks.Open filename:=CurrentProject.Path & "\分析素材\test.xls" アクセスのテーブルをエクセルシートに出力し、そのファイルを開くという プログラムを作成してみたのですが、★のところで固まってしまいます。 何がいけないのでしょうか?

  • ACCESSからEXCELの PasteSpecial でエラーになる

    ACCESSからEXCELを操作しています。 範囲コピー後、書式のみペーストしたいのですが、うまくいきません。 以下の PasteSpecial の行でエラーになります。 エラーメッセージは「Range クラスの PasteSpecial メソッドが失敗しました。」です。パラメータを付けないと全てがコピーされ正常に終わります。 パラメータをダブルクォートで囲っても駄目でした。 EXCELのマクロ出力そのままなのですが、書き方が悪いのでしょうか。 Dim oApp As Object Set oApp = CreateObject("Excel.Application") oApp.UserControl = True oApp.Workbooks.Open FileName:="format.xls" oApp.Range("A1:D4").Select oApp.Selection.Copy oApp.Range("C9").Select '↓エラーになる oApp.Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False