VisualBasicAccessのコントロール

最後は、ご注意です。例えばExcelとともにVisualBasicがインストールされているとVisualBasicが持っているコントロールをExcelで利用できてしまいますが、このコントロールを使って作成したワークブックは他のPC上で動くとは限りません。

VisualBasicでは、インストーラ付きの実行モジュールを作成する時にこれらの依存ファイル(コントロール)も含めてインストーラが作成されるので、配布先でも問題なく動作できますが、Excelは「ワークブック」の単一ファイル配布なので配布先にも同一環境が用意されていないと動作できません。

VisualBasicのProgressBarをユーザーフォームで使う

この画面サンプルは、ExcelのユーザーフォームにVisualBasicのコントロールである「Microsoft ProgressBar Control 6.0」を貼り付けて見たところです。この環境では「普通に」動作してしまいます。 「Microsoft ProgressBar Control 6.0」は「Visual Basic 6.0」か、「Visual Basic 6.0」で作成されたアプリに配布によりセットアップされます。



このPC2019年にセットアップしたWindows10PCであって、 当然ながら当時の「Visual Basic 6.0」などはインストールしていません。 ですから、何かのアプリのインストールによってセットアップされたものでしょう。
Microsoft ProgressBar Control 6.0」の実体は「MSCOMCTL.OCX」で、確かに「SysWOW64」フォルダに存在していました。 ファイルの更新日時は2015年ですが、プロパティの著作権の年は「1987-2000」と古いものです。



もうお解りだと思いますが、これをこの画面サンプルのように利用してしまうと、このPCでは動きますが、他のPC環境ではおそらく動かないでしょう。 また、当時の「Visual Basic 6.0」は32ビットのみの対応だったので、当然ながら64ビット版Excelでは動きません。



さらに言えば「Visual Basic 6.0」がインストールされていない環境でこれらを利用してしまうのは、できたとしても「ライセンス違反」です。
いろいろなプロダクトをインストールしていると、ツールボックスの「その他のコントロール」には、数多くの名前が出てきますが、元々チェックが付いている「Microsoft Forms 2.0」関連以外のコントロールを使用する場合は注意して下さい。
Officeとしてインスト-ルできるものでも、デフォルトではインストールされないものもかなりあります。これらの利用についてもご注意下さい。



ProgressBar」はツールボックスの標準には含まれていないから、このように「利用したい」と思った時に困るわけです。
ただ「ProgressBar」であれば「モドキ」は作成できます。「プログレスバーのクラス」などはいかがでしょうか。