VBA初心者です。
現在、WindowsアプリからExcelを表示するアプリを製作中ですが、Excelの起動条件の違いで、動作が異なる現象が発生して困っています。
①管理者権限で起動したWindowsアプリよりVBAを実装したExcelファイルを表示
→ 起動時に「Activexコンポーネントはオブジェクトを作成できません」とエラー発生
②通常権限で起動したWindowsアプリよりVBAを実装したExcelファイルを表示
→ 正常に動作
③VBAを実装したExcelファイルを手動で表示
→ 正常に動作
①・②のアプリは処理自体は同じアプリで、マニフェストファイルのみ変更したものです。
①の時の設定
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
②の時の設定
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
です。
Excelファイル内のVBAでは、workbook_openイベントにてVB.Netで作成したタイプライブラリを呼び出しています。
Windowsアプリはインストーラーでの配布を考えているため、
タイプライブラリの登録を、Visual Studio Installerのカスタムアクションにて登録してます(regasmコマンドにて登録。OLEビュアーにてタイプライブラリが登録されていることは確認済みです)
何か考えられる原因がありましたら教えてください。
よろしくおねがいします。
○開発環境
Win7(32bit)、Excel2010、VS2013(VB.Net .NETFramework4.0)
追加情報
・Excelの起動方法
WinアプリからのExcelの起動は以下にて行っています。
Dim xlsApp As Excel.Application
Dim xlsWorkBooks As Excel.Workbooks = Nothing
Dim xlsWorkBook As Excel.Workbook = Nothing
xlsWorkBooks = xlsApp.Workbooks
xlsWorkBook = xlsWorkBooks.Open("a.xls")
・①の状況時にタスクマネージャーで「UACの仮想化」を確認したところ
WinアプリおよびExcel.exeともに「有効(ブランク)」でした。
・①の後にコマンドプロンプトを管理者権限で起動し、regasmコマンドを実行したところ、
①でもエラーが発生しなくなりました。
回答1件
あなたの回答
tips
プレビュー