Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Access 2003)
Access2003からExcel2016を操作したい
投稿日時: 19/03/07 11:43:28
投稿者: yuki6982

お世話になります。
 
現在Access2003で作成しているAdpファイル内で
抽出したデータをExcel2003に貼り付けるというものを作成しているのですが
同じものがExcel2016では使用出来なくなってしまいました。
理由はExcel11.0オブジェクトライブラリが参照できなくなったためのようなのですが
これはもうExcel2016をAccess2003から操作する方法は無いという事なのでしょうか?
 
すみませんがご教授頂きますよう
よろしくお願い致します。
 

回答
投稿日時: 19/03/07 13:56:48
投稿者: よろずや

複数の環境で動作させるためには、参照設定を必要最小限にしましょう。
その上で、下記のように書き換えます。
 
Dim XlApp As Excel.Application

Dim XlApp As Object
 
Set XlApp = New Excel.Application

Set XlApp = CreateObject("Excel.Application")

投稿日時: 19/03/07 16:11:52
投稿者: yuki6982

よろずや様
 
回答ありがとうございます。
 
実は元からご指摘の通りに記述しているのですが
その後のワークシート型の変数宣言を行うところで
コンパイルエラー「ユーザ定義型は定義されていません」となります。
 
Dim XlApp As Object
Set XlApp = CreateObject("Excel.Application")
Dim xlSheet As Excel.Worksheet ←ココでエラー「ユーザ定義型は定義されていません」
Set xlSheet = objEXCEL.Worksheets(1)
〜その後、 Dim rs As New ADODB.Recordset・・・と続きます
 
また、Worksheet型ではなく、オブジェクト型にしてみたところ
Set XlApp = CreateObject("Excel.Application")の部分で
エラー「ActiveXコンポーネントはオブジェクトを作成できません」
と出るようになります。
 
参照可能なライブラリファイルにExcelが見当たらないので
参照できていない事が関係するのでしょうか?
今有効な参照設定は、
Visual Basic for Applications
Microsoft Access 11.0 Object Library
OLE Automation
Microsoft DAO 3.6 Objest Library
Microsoft ActiveX Data Objests 2.8 Library
の5つです。
 
度々恐れ入りますが、よろしくお願い致します。

投稿日時: 19/03/07 16:15:58
投稿者: yuki6982

よろずや様
   
すみません、コードの記述が抜けていました・・
   
Dim XlApp As Object
 Set XlApp = CreateObject("Excel.Application")
 XlApp.Workbooks.Add
 Dim xlSheet As Excel.Worksheet ←ココでエラー「ユーザ定義型は定義されていません」
Set xlSheet = objEXCEL.Worksheets(1)
〜その後、 Dim rs As New ADODB.Recordset・・・と続きます
 
になります。
   
度々恐れ入りますが、よろしくお願い致します。

回答
投稿日時: 19/03/07 16:50:39
投稿者: よろずや

Dim xlSheet As Excel.Worksheet

Dim xlSheet As Object
 
です。

投稿日時: 19/03/07 17:25:38
投稿者: yuki6982

ご返答ありがとうございます。
 
先ほどの件ですが、先に記述した通りなのですが、
Worksheet型ではなく、オブジェクト型にしてみたところ
Set XlApp = CreateObject("Excel.Application")の部分で
 エラー「ActiveXコンポーネントはオブジェクトを作成できません」
と出るようになります。
参照可能なライブラリファイルにExcelが見当たらないので
参照できていない事が関係するのでしょうか?
 
すみません、よろしくお願い致します。

回答
投稿日時: 19/03/07 22:17:11
投稿者: WinArrow
投稿者のウェブサイトに移動

引用:
参照可能なライブラリファイルにExcelが見当たらないので
参照できていない事が関係するのでしょうか?

 
Access 11.0 はOffice2003対応ですよね・・・
 
Accessがインストールされていて、Excelがインストールされていない?
 
こんな環境はおかしくないですか?
 
もう一度、しっかりと確認してみましょう。

投稿日時: 19/03/08 09:03:10
投稿者: yuki6982

WinArrow様
 
ご回答ありがとうございます。
申し訳ございません、説明不足でした。
Excel2016をインストールしたので、Exsel2003はアンインストールしております。
(Excelを複数バージョン混在させる事での万一の不具合を懸念しての事です。)
Access2016は購入せず、Access2003の使用を続けております。
(Access2016には、Adp接続が無いと聞いたからです。)
結果、Access2003を使用して、Excel2016を操作する必要が出てきたのですが
コードの書き換えが上手く出来ずに困っている次第です。
 
参照設定にExcel2016が無い以上、
Access2003からExcel2016を操作することは出来ないのかと思い
質問させて頂きました。
無理な様であれば、Excel2003を再インストールしようかと思っております。
 
後出し情報になり申し訳ございません、
よろしくお願い致します。
 

回答
投稿日時: 19/03/08 10:31:48
投稿者: Suzu

Excel2016 インストール後に、Excel2003をアンインストールしませんでしたか?
 
今回は、違うバージョンのOfficeソフトを混在している状態です。
Excel「だけ」が混在しなければ良いという話は、Excelだけの動作を考えた時です。
今回の様に他のOfficeソフトとの連携までを考慮するなら
 
古いバージョンの物からインストールする事が求められます。
 
 
Officeに限らずですが、
古いバージョンの物をアンインストールしてから、新しいバージョンの物を入れていかないと、
うまく動作(連携)が取れない事が多いです。
 
そもそも Office2007以前の物は、延長サポートも切れていて、
うまくいかなくても自己責任という事ですが、、
(今回動作しないのとは、別の話です)

回答
投稿日時: 19/03/08 10:36:11
投稿者: Suzu

もし、

引用:
Excel2016 インストール後に、Excel2003をアンインストールしませんでしたか?

なのであれば、
 
Excel2016アンインストール
 ↓
Office2003から、 Access2003のみを単体インストール
 ↓
Excel2016 インストール
 
を行います。

投稿日時: 19/03/08 10:47:53
投稿者: yuki6982

Suzu様
 
ご連絡ありがとうございます。
 
古いバージョンからインストールすることは聞いておりましたので
空っぽの状態からAccess2003→Office2016の順にインストールしております。
 
もう一度インストールからやり直したら上手く行くのでしょうか・・。
 

回答
投稿日時: 19/03/08 11:01:05
投稿者: WinArrow
投稿者のウェブサイトに移動

>Access2003からExcel2016を操作することは出来ないのかと思い
 
Office2003 とOffice2016では、世界が違うというレベルの話です。
 
普通に、下位互換はあり得ますが、上位互換はあり得ません。
 
ですから、
Exccel2016側でAccess2003MDBを操作することはできると思いますので、
検討してみたら
と考えます。
 
内容によっては、無理かも・・・ダメもとで・・

投稿日時: 19/03/08 11:47:32
投稿者: yuki6982

ご回答頂きました皆様、ありがとうございました。
 
色々と調べてみたのですが、上位互換が無いという理由であれば
解決策は無いと判断致しました。
 
しばらくはExcel2003を入れて使用しようと思います。
 
皆様色々とご協力頂きましてありがとうございました。