Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1768 / 2272 ツリー ←次へ | 前へ→

【5386】VBの参照設定(Excel) smith 05/6/15(水) 16:34 質問[未読]
【5387】Re:VBの参照設定(Excel) Gin_II 05/6/15(水) 16:47 回答[未読]
【5388】Re:VBの参照設定(Excel) 小僧 05/6/15(水) 16:47 回答[未読]
【5390】Re:VBの参照設定(Excel) smith 05/6/15(水) 17:52 お礼[未読]

【5386】VBの参照設定(Excel)
質問  smith E-MAIL  - 05/6/15(水) 16:34 -

引用なし
パスワード
   AccessのVBの参照設定に「Microsoft Excel9.0 object Library」を使っているのですが、Excel97が入っているパソコンで動かすとエラーになって参照不可になります。逆に参照設定に「Microsoft Excel8.0 object Library」を使って、Excel2000のパソコンで動かすとエラーになります。Excel8.0 = Excel97で、Excel9.0 = Excel2000だってことはわかっております。使用ユーザーは500人ほどで、Excel97とExcel2000が半々ぐらいです。どちらでも動作するような参照設定は存在するのでしょうか。

【5387】Re:VBの参照設定(Excel)
回答  Gin_II  - 05/6/15(水) 16:47 -

引用なし
パスワード
   >どちらでも動作するような参照設定は存在するのでしょうか。

[OFF2003] [INFO] オートメーションにおける事前バインディングおよび実行時バインディングの使用
http://support.microsoft.com/default.aspx?scid=kb;ja;245115

実行時バインディングを使っては?

【5388】Re:VBの参照設定(Excel)
回答  小僧  - 05/6/15(水) 16:47 -

引用なし
パスワード
   ▼smith さん:
こんにちは。

まず配布元のAccessの、エクセルへの参照設定を外します。

次に「Dim」「Public」等で宣言している変数でエクセルのオブジェクトを
使っているものを全て「Object型」で宣言します。

例) Dim xlsApp As New Excel.Appclication
   Dim xlsWkb As Workbooks
   Dim xlsSht As Worksheet
   Dim xlsRange As Range
               ↓
   Dim xlsApp As Object
   Dim xlsWkb As Object
   Dim xlsSht As Object
   Dim xlsRange As Object

「Application」をセットしている変数(上記ではxlsApp)の記述を

  Set xlsApp = CreateObject("Excel.Application")

とします。

この状態で今まで通りの作動するはずです。

Excelの参照設定をしていないため、Excelのバージョンに依存せずに
使うことができるようになります。

但し、Excel2000でしかサポートされていないメソッド等を使用した場合は
Excel97ではエラーとなります。

【5390】Re:VBの参照設定(Excel)
お礼  smith E-MAIL  - 05/6/15(水) 17:52 -

引用なし
パスワード
   お二人ともありがとうございます。どちらともやってみます。

1768 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078265
(SS)C-BOARD v3.8 is Free