3

私はあきらめています。すべてを XLS VBA に送信します。ありがとう!

Win7 および Office2010 (v14.0 32 ビット) 環境で VB6 プログラムに小さな変更を加える必要があります。現在、プログラムは次のコード行によってインスタンス化を試みます。

Dim objExcel as Excel.Application
Set objExcel = New Excel.Application

コードの 2 行目を実行した直後に、エラー 70: Permission Denied が表示されました。同じコード行について、Excel VBA で簡単なテストを試みましたが、うまくいきました。

手がかりはありますか?実行されているはずのサービスがダウンしている可能性はありますか? Office の再インストールを避けるためにすべきことはありますか?

私が集めたヒント:

  1. DCOMCNFG でアクセス許可を構成しようとしましたが、Excel アプリケーションが見つかりませんでした。

  2. Excel.exe /regserver を実行しようとしましたが、何も起こらないようです: Excel は、サイレント モードで実行されるはずのときに通常どおり実行されます。

  3. ProcessMonitor を実行すると、への呼び出しが表示されていることがわかりましたExcel.exe \automation(Path Not Foundパスを確認しましたが、問題はありません\automation

  4. コードを変更して Word アプリケーション (およびもちろん dll 参照) をインスタンス化すると、同じエラーが表示されます。

  5. Office14 フォルダーに与えられた完全なアクセス許可。次のリンクの Img: http://i.stack.imgur.com/sgZW5.png (申し訳ありませんが、新しいユーザーとして画像を投稿できません)

前もって感謝します。

ガブリエル

4

5 に答える 5

1

これを試して

1) Windows エクスプローラーを開き、次の場所に移動します。C:\Program Files (x86)\Microsoft Office

3) 「Office14」フォルダを右クリックし、「プロパティ」をクリックします

4) [セキュリティ] タブに移動します。

5) [Machine]\Users に「フル コントロール」を与えます。

6) もう一度 vb6 アプリを実行してみてください

ここに画像の説明を入力

于 2012-05-16T14:31:56.177 に答える
1

DCOM CONFIG で、次のように設定してみてください。

  1. 一般タブ -> 認証レベル -> なし
  2. [アイデンティティ] タブ -> [対話ユーザー] を選択します

お役に立てれば

于 2016-05-26T20:08:47.230 に答える
1

あなたのスクリーンショットを見ると、64 ビットの Windows で Office 32 ビットを実行しているようです。

したがって、デフォルトでは、DCOMCNFG.exe を開くと、64 ビット バージョンにアクセスします。これにより、64 ビット COM コンポーネントを編集できます。Excel は WoW64 で実行されているため、そこに Excel が見つからない理由を説明します。

次のコマンドを試してください。

C:\Windows\System32\mmc.exe comexp.msc /32

32 ビット コンソールを開くには。そこから、Excel の COM コンポーネントの設定を見つけて、その権限を編集する必要があります。すべてのユーザーにアクセスを許可し、プログラムをもう一度実行してみてください。それが機能する場合は、後で許可を微調整して、特定のユーザーのみを許可する必要があります (すべてのユーザーに DCOM アクセスを許可するのは危険です...)。

それが役立つことを願っています。

于 2012-05-18T07:00:57.060 に答える
0

マシンのDCOMの既定のセキュリティ設定を確認しましたか? これらは、コンポーネント サービス MMC スナップインの [マイ コンピュータ] のプロパティにあります。を実行すると、そこに到達できますdcomcnfg

于 2012-05-16T16:23:37.357 に答える