Question

dorabu on Sun, 24 Mar 2019 00:05:36


VB2017にて遅延バインディングで

Dim xlApp As Object

xlApp = CreateObject("Excel.Application")を実行すると特定のWINDOWS10(複数台数)で

「ActiveXコンポーネットを作成できません」が発生します

今この命令でvbアプリを使用していましたが最近購入したPCにのみ発生します

Excelは2016 32ビット windows10 17134.648

コンパイルをanypcでなくX86で作成してみましたが同じ結果です。

エラーが発生しないPCはofficeがC:\Program Files (x86)\Microsoft Office\root\Office16に

インストールされてますが

エラーが発生するPCはC:\Users\pc名\AppData\Local\Microsoft\WindowsApps

ですがexce.exeのサイズが0バイトです。

フォーラムや他のネット情報も確認し、色々と試してみましたが解決しません

参照設定でインタートラップをしてもいいのですがexcelのバージョンに左右されたく

ないのであえて、遅延バインディングで 作成しています

どうもPC側でExcel.Applicationが認識していないようでofficeがC:\Program Files (x86)

にexcelがないのが原因のようですが

解決方法をアドバイスいただければ幸いです


Replies

kenjinote on Sun, 24 Mar 2019 01:37:57


CreateObject("Excel.Application") が失敗することから、レジストリのエントリが正しく行われていないのかなと思いました。一度、Excelを修復したり再インストールしたりして状況は変わりますでしょうか?

Excelの修復方法については下記を参照
Office アプリケーションを修復する

また、過去のExcelのバージョンについての記述ですが、/regserver を引数に Excel.exe を起動するとレジストリの登録ができるようです。
参考サイト: https://support.microsoft.com/ja-jp/help/292491/office-automation-when-multiple-versions-of-office-are-installed

Hongliang on Sun, 24 Mar 2019 02:49:57


どうにもはっきりした記事が見つからないので可能性の話なのですが……。

その症状を呈しているPCにインストールされているOfficeはストアアプリ版のものではないでしょうか。

ストアアプリ版OfficeではCOMオートメーションできないようです。

例:会計ソフトはPCA - 製品に関するお知らせ ストアアプリ版Office2016の対応について | ピー・シー・エー株式会社

dorabu on Sun, 24 Mar 2019 06:21:58


回答ありがとうございます 

修復は試したのですが、駄目でした

dorabu on Sun, 24 Mar 2019 06:34:33


回答ありがとうございます

その後該当PCにVB2017の開発環境をインストールして参照設定をしようとしたのですが

excel object library16が無いのに気がつきました。

libraryどころか該当PCには肝心のPIAディレクトリが一切見当たりません。

本PCはofficeプリインストールモデルです。

ストアアプリ版かどうかは購入時点で確認できませんが、officeの本体がインストールされて

いる場所から判断するとストアアプリ版のようです。

ストアアプリ版を削除して、インスト-ルしても良いのですが、MSにライセンスの

扱い等を確認してから実行して見ます。

なおexcel object library16のDLLを他のPCからコピーしてアプリの同一DLL

にセットしCOM参照しましたが、当然ならが、同じエラーになりました。

ご教授ありがとうございました。教えていただいたリンクを参考にしてみます


Azulean on Sun, 24 Mar 2019 07:06:52


ストアアプリ版では COM の生成に制限がかかります。(参考
なお、別途入手した PIA を使ったとしても、結局は COM オブジェクトの生成という経路を使いますので、同様に失敗となります。

dorabu on Sun, 24 Mar 2019 07:45:59


皆様 休日にも関わらず迅速なご回答ありがとうございました

結論としては、ダウンロード版のofficeを再インストールで解決です。

hongliangさんやkenjinoteさんのアドバイス通りofficeストアアプリ版はCOM

を利用したアプリを実行できないですね 

MSに操作方法とライセンスの扱いを確認の上、officeストアアプリ版を削除して

officeダウンロード版をインストールしました、認証は自動認証でOKでした。

ダウンロード版再インストールでVBで作ったCOMアプリ無事実行できました。

vbの参照設定にもexcelのライブラリが表示されました。

officeストア版ですがsurfaceなら解りますがデルとレノボのプリインストール版

のノートPCもストア版のoffcieなんですね

いづれにせよどうもありがとうございました