

VB6.0で、ActiveXコンポーネントのインスタンス生成に関連する質問をさせていただきます。
まず前提として、VB6.0では、
ExcelのようなActiveXコンポーネントをコード上で生成する場合、下記の4通りの記述が可能です。
--------------------------------------------
'(1) 参照設定は要らない
Dim hoge As Object
Set hoge = CreateObject("Foo.Bar")
'(2) 参照設定が必要
Dim hoge As Foo.Bar
Set hoge = CreateObject("Foo.Bar")
'(3) 参照設定が必要
Dim hoge As Object
Set hoge = New Foo.Bar
'(4) 参照設定が必要
Dim hoge As Foo.Bar
Set hoge = New Foo.Bar
---------------------------------------------
この中で遅延バインディング(実行時バインディング)は(1)のみで、
(2)~(4)は事前バインディングです。
ここで疑問なのですが、開発者が事前バインディングでコーディングを行う場合、
(4)以外の記述(つまり、(2)と(3)の記述方法)にメリットや必要性はあるのでしょうか。
(2)はコード補完が使えなくなりますし、
(3)はレジストリ経由のせいでパフォーマンスが低下するでしょうし、
デメリットしかないように思われます。
そうであれば、これらの記述方法は推奨されないものなのでは、と思ったしだいです。
回答、よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
基本的には、(1)か(4)以外はメリットはなく、
(2)については、レアなケースでメリットがある場合があります。
それは、開発過程の間です。
(1)を最終形で開発しているときに、開発完了直前までは
(2)にしておけば、コード補完が使えるので、便利で、
開発完了直前で、As ... を As Object に置換すれば
いっきに(1)に変えられるので、よくやります。
パフォーマンスを気にしない局面かつ
配布先環境で、参照設定が成功するか不安なケースで
As Objectなら On Error でトラップできるので、
私なんかは、(4)より(1)を多用します。
回答ありがとうございます。
>(1)を最終形で開発しているときに、開発完了直前までは
>(2)にしておけば、コード補完が使える
上記のようなテクニックは非常に有用ですね。
開発形態によっては重宝できそうです。
2つの回答をいただいたおかげで、モヤモヤしていた部分がスッキリしました。
感謝します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Windows 10 バッチファイルの記述法とルールについてアドバイスをお願いいたします。 1 2022/04/13 10:50
- HTML・CSS 全部のアクセスを指定したページに転送させたい 2 2022/06/28 16:33
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- Visual Basic(VBA) このVBAでExcelアプリケーションを作成は必要ですか? 3 2023/07/19 21:13
- Visual Basic(VBA) findメソッドの変数について 6 2023/06/23 08:01
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) VBAでoutlook365が起動しません。 4 2022/08/25 13:31
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
多重配列の定義について。【Ruby】
-
「クエリが閉じてるなら」「ク...
-
Linux バイナリ実行できない "...
-
C++の変数の初期化
-
JavaScriptの関数の引数省略に...
-
関数を呼び出すHTMLタグ<body o...
-
hoge の謎
-
サブウインドウから親ウインド...
-
Vb.netのグローバル変数の宣言...
-
同じ型【ハイフンと数字】だけ...
-
ボタンをクリックすると数が増...
-
confirmの連続?
-
JavaScriptで連続する空白を、h...
-
Jqueryでスクロール時に指定し...
-
VB.NETで変数の型は自作...
-
rubyで配列名をfor文で変更したい
-
ArrayListの初期値の設定の仕方...
-
プログラムの関数の例でよく使...
-
MFCのキャプション変更
-
JavaScript これは配列ですか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTTPSのとき":"が"%3A"ではなく...
-
ボタンをクリックすると数が増...
-
【正規表現】【javascript】CR...
-
Boolean型配列中のTrueの有無を...
-
Linux バイナリ実行できない "...
-
ASP+アクセスでのSQLコメントに...
-
Excel VBA の ChangeFileAccess
-
Vb.netのグローバル変数の宣言...
-
static constメンバ変数(配列)...
-
同じ型【ハイフンと数字】だけ...
-
javascriptで文字挿入でtoggle...
-
アンカーリンクをクリックさせ...
-
VC++のちらつき防止方法
-
C# .NET DataGridView の行を追...
-
MFCのキャプション変更
-
hoge の謎
-
confirmの連続?
-
return (A && B) || 0;
-
ifreamをリロードしたい
-
-(ハイフン)_(アンダーバー)の...
おすすめ情報