none
VB.net2008からOffice2013の起動に遅延が発生する件について RRS feed

  • 質問

  • VB.netよりOffice製品(Excel、Word、Access)を起動した際に、
    初回のみ起動時間が約30秒程度かかってしまう現象が発生しております。
    プログラム起動後、2回目以降は通常の起動時間になります。

    ■環境
     OS    :Windows7 Professional SP1(64bit)
     Office製品:Microsoft2013(32bit)
     開発ツール:VisualStudio2008 Professional Edition SP1
           Microsoft.NET Framework version3.5 SP1

    ■制約
     ・プラットフォームは「x64」「x86」で開発する規約としているため、開発ルール上「Any CPU」は選択できません。
      ・VisualStudio2008のため、.NET Frameworkの4.0以上は使用できません。

    ■現象
     VB.netよりOffice製品(Excel、Word、Access)を起動した際に、
     初回のみ起動時間が約30秒程度かかってしまいます。
     プログラム起動中、2回目以降のOffice製品の起動は、通常の起動時間になります。
     プログラムを再起動すると、Office製品の初回起動は遅延します。
     ちなみに、WindowsスタートメニューからのOffice製品起動時間に遅延はありません。

    ■確認手順
     テスト用にVB.netプロジェクトを作成し、以下のテストを実施しました。
     構成マネージャよりアクティブソリューション プラットフォームを
     「Any CPU」「x64」「x86」に設定し、それぞれ計測しました。

    ■テストソース
     ''Wordオブジェクト用変数
     Dim objWordApp As Object

     '' Word起動
     objWordApp = CreateObject("Word.Application") ''←ここで30秒程度遅延発生
     If objWordApp Is Nothing Then
         Exit Sub
     End If

    ■計測結果
     プラットフォーム 起動時間(秒)
     Any CPU      0.405
     x64        30.514
     x86        30.452

    直接の原因かは不明ですが、イベントログを確認すると以下のエラーが発生しております。
    ------------------------------------------------------------------------------------------
    ソース "MSOIDSVC.EXE" からのイベント ID 0 の説明が見つかりません。
    このイベントを発生させるコンポーネントがローカル コンピューターにインストールされていないか、
    インストールが壊れています。ローカル コンピューターにコンポーネントをインストールするか、コンポーネントを修復してください。
    イベントが別のコンピューターから発生している場合、イベントと共に表示情報を保存する必要があります。
    イベントには次の情報が含まれています:
    InitializeSvcAPI failed with hr = 0x80048883
    ------------------------------------------------------------------------------------------

    裏でOfficeのインストーラが起動し、失敗するために30秒の遅延がかかっているように思われます。

    現在までに、以下の対策を実施しましたが効果は出ておりません。
    ■対策
     ・Office2013パッチ (※2014/05/18時点)
     ・.NET Framework3.5パッチ (※2014/05/18時点)
     ・Windowsセキュリティパッチ (※2014/05/18時点)
     ・Excelの参照をDLL参照及び、GAC参照のどちらでも効果なし

    初回起動の遅延をなくす方法が、何かありましたらご教示お願い致します。

    以上、よろしくお願い致します。

    • 移動 佐伯玲 2014年6月25日 4:04 Windows 7 全般 から Visual Basic へ
    2014年6月24日 18:02

すべての返信

  • こんにちは、umihitoさん
    フォーラムオペレータの佐伯 玲 です。

    ご投稿いただいたご質問ですが通常起動では遅延が起こらずということなので
    開発側の観点から情報を募集されたほうが良いかと思い後ほど私のほうでMSDN フォーラムの「Visual Basic」フォーラムへ移動させていただきました。


    宜しくお願い致します。

    TechNet Community Support 佐伯 玲


    • 編集済み 佐伯玲 2014年6月25日 4:05
    2014年6月25日 1:35
  • > 裏でOfficeのインストーラが起動し、失敗するために30秒の遅延がかかっているように思われます。

    何か根拠があるのでしょうか?

    イベントログは、該当するエラーメッセージが見つからないという意味の二次的なエラーかと。

    重要な情報は、「MSOIDSVC.EXE」と「InitializeSvcAPI 80048883」と思うのでググって下さい。
    2014年6月25日 5:05
  • todoさん、回答ありがとうございます。
    ご返事が遅れてしまい申し訳ありません。

    >何か根拠があるのでしょうか?
    イベントログに「インストール」という単語が出てきておりましたので
    そう判断してしまいました。


    記述しておりませんでしたが、開発環境及び実行環境は外部のインターネットに接続されておりません。

    「MSOIDSVC.exe」は、Microsoft Online Servicesサインインアシスタント(MOS SIA)の
    コンポーネントのひとつのようです。
    ttp://community.office365.com/ja-jp/w/sso/description-of-microsoft-online-services-sign-in-assistant-.aspx

    ※リンクが貼れないため、先頭の「h」を消してます。

    以下、抜粋します。
    ------------------------------------------------------------
    MSOIDSVC.exe - msoidsvcというサービス名のWindowsサービスとしてインストールされます。
    これは、AD FS およびMicrosoft Online Services認証サーバーに対する、実際のログオン
    およびサービスチケット要求を実行するコアコンポーネントです。
    ------------------------------------------------------------
    「MSOIDSVC.exe」で開発端末内を検索しましたが、ヒットしませんでした。

    現在、以下の2点を調査予定です。
     ・「Microsoft Online Servicesサインインアシスタント(MOS SIA)」をインストールするとどうなるか
     ・外部のインターネットに繋がった端末で、サンプルプログラムの動作検証


    また「InitializeSvcAPI 0x80048883」のキーワードで、ネット上を検索しましたが、
    今回の現象に該当するものは、まだ見つけられておりません。


    以上、よろしくお願い致します。

    2014年6月27日 6:10