投稿日 | : 2002/09/12(Thu) 23:52 |
投稿者 | : よねKEN |
Eメール | : |
URL | : http://www5b.biglobe.ne.jp/~yone-ken/ |
タイトル | : Re^3: 参照設定について |
> > ただ、どうしても外したいというならば、
> > 上の3つの変数の型をすべて Object にすれば、
> > 参照設定を外しても実行可能かと、思います。
>
> 分かりました。試してみます。
> まあ、このまま参照設定をはずさないのがいいみたいですね!
対象とするExcelのバージョン次第ではないでしょうか。
業務アプリの場合、対象とするExcelのバージョンが複数ある場合が多いので、
最終的に参照設定をはずしてコンパイルすることは多いと思います。
参照設定の有無による違いを書きます。
・参照設定する場合(アーリーバインド)
- 事前に(コンパイル時に)オブジェクト参照が解決しているのでレイトバインドの場合より高速に動作します。
- 参照設定しているExcelのバージョンでしか動作しません。
- ExcelVBAの定数を利用できます。
- Excel固有の型が使えます。(Excel.Application、Excel.Workbookなど)
- インテリセンスが効きます。
・参照設定をしない場合(レイトバインド)
- アーリーバインドより若干、動作が遅いです。(気にするほどではないと思いますが)
- 処理内容そのものの互換性やExcelのオブジェクト群が持つ機能の互換性は別として、
Excelのバージョンに関係なく動作します。
(バージョンに依存しない機能のみを利用するようにバージョン間の違いは意識する必要があります)
- ExcelVBAの定数が使えないので、定数名とその値を調べて、
Constで自前で同じものを定義する必要があります。
- Excel固有の型の代わりにObject型を使います。(とろさんのおっしゃる通り)
そのため、開発環境上でインテリセンスが使えません。
バージョン間での機能の有無が違ったり、同じ機能でも動作結果が違うことがあるでしょうから、
バージョン依存の機能は使わないことと、各バージョンのExcelの環境でのテストが必須になります。