VBAのActiveXエラーを解決したいです
- 評価
- クリップ 2
- VIEW 9,650
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コマンドを実行したところ、
①でもエラーが発生しなくなりました。
-
気になる質問をクリップする
クリップした質問は、後からいつでもマイページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
クリップを取り消します
-
良い質問の評価を上げる
以下のような質問は評価を上げましょう
- 質問内容が明確
- 自分も答えを知りたい
- 質問者以外のユーザにも役立つ
評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。
質問の評価を上げたことを取り消します
-
評価を下げられる数の上限に達しました
評価を下げることができません
- 1日5回まで評価を下げられます
- 1日に1ユーザに対して2回まで評価を下げられます
質問の評価を下げる
teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。
- プログラミングに関係のない質問
- やってほしいことだけを記載した丸投げの質問
- 問題・課題が含まれていない質問
- 意図的に内容が抹消された質問
- 過去に投稿した質問と同じ内容の質問
- 広告と受け取られるような投稿
評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。
質問の評価を下げたことを取り消します
この機能は開放されていません
評価を下げる条件を満たしてません
質問の評価を下げる機能の利用条件
この機能を利用するためには、以下の事項を行う必要があります。
- 質問回答など一定の行動
-
メールアドレスの認証
メールアドレスの認証
-
質問評価に関するヘルプページの閲覧
質問評価に関するヘルプページの閲覧
checkベストアンサー
0
関係あるかわかりませんが……。
ttp://gomi-box.hatenablog.com/entry/20100913/1284366633
デバッガでなく、
コンパイル済みのexeファイルとしては実行できますか?
エクセルを開く時にエラーが発生しているのだとしたら
あまり関係ないかも……。
投稿
-
回答の評価を上げる
以下のような回答は評価を上げましょう
- 正しい回答
- わかりやすい回答
- ためになる回答
評価が高い回答ほどページの上位に表示されます。
-
回答の評価を下げる
下記のような回答は推奨されていません。
- 間違っている回答
- 質問の回答になっていない投稿
- スパムや攻撃的な表現を用いた投稿
評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。
15分調べてもわからないことは、teratailで質問しよう!
- ただいまの回答率 88.35%
- 質問をまとめることで、思考を整理して素早く解決
- テンプレート機能で、簡単に質問をまとめられる
質問への追記・修正、ベストアンサー選択の依頼
KoichiSugiyama
2016/04/20 07:52 編集
WindowsアプリからExcelを実行する方法はどういったやり方を採用されていますでしょうか。ご質問にある情報からだと、WindowsアプリのプロセスとExcelのプロセスが違う権限で実行されているためのように見えます(そういう動作になることがあり得るのかちょっと不明ですが)。ですのでそのあたりを明確にしていただけると、より的確なアドバイスが集まりやすいのではないかと思います。
breakQuestion
2016/04/20 10:23
ご指摘ありがとうございます。情報追記してみました。