早期バインディングで使用する前に、ライブラリの存在を確認するために遅い拘束を使用できますか?

StackOverflow https://stackoverflow.com/questions/8911845

  •  29-10-2019
  •  | 
  •  

質問

開発中にメソッド名の自動コンプリートなどが好きなので、私は自分のVBAプロジェクトで早期バインディングを使用するのが好きです。また、メソッド名を誤って出した場合、コンパイラが私に警告することを知る自信が気に入っています。

ただし、早期のバインディングを使用するには、関連するライブラリに参照を追加する必要があります(たとえば、「Microsoft Scripting Runtime」)。そのような「標準」ライブラリには問題ありませんが、ユーザーのマシンに存在する場合と存在しないライブラリを使用したい場合があります。

理想的には、ライブラリが存在しない場合は有用なメッセージを表示したいと思います(「XYZはこのコンピューターにインストールされていないため、この機能は使用できません」)。私が使用していた場合 遅い バインディング、それから私はこれを行うことができます:

Dim o As Object
Set o = CreateObject("foo", "bar")

If o Is Nothing Then
    MsgBox "nope"
End If

しかし、早期バインディングを使用するためにライブラリへの参照を追加した場合、ライブラリが存在しない場合は、VBAプロジェクトがロードされたときにコンパイルエラーを取得します。したがって、 なし コードの実行(ライブラリの存在を検出するためのコードを含む)。

このCatch-22の周りにはありますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top