none
VB2010から外部アプリのExcel 2013を画面を出さずに最小化起動したい RRS feed

  • 質問

  • Windows 7 SP1でVB2010からExcelを起動するとき、
    Excel2010ではExcel画面を出さずに最小化起動できていた以下のプログラムが
    Excel2013では一瞬通常起動して画面が見えてから最小化してしまう動作となってしまいました。

    画面が見えないようにする方法を教えて頂ければありがたいです。

            Dim p As System.Diagnostics.Process = New System.Diagnostics.Process
            p.StartInfo.FileName = "C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE"
            p.StartInfo.Arguments = "TestVBA.xlsm"
            p.StartInfo.WindowStyle = ProcessWindowStyle.Minimized

            p.Start()

            p.WaitForExit()
            p.Close()
            p.Dispose()


    2014年2月13日 7:27

すべての返信

  • 検索しただけ詳しく調べていないのですが、ProcessStartInfoクラスを使用してみるとどうでしょうか?

    ShellEx: Starting Excel minimized or hidden
    http://stackoverflow.com/questions/3719579/shellex-starting-excel-minimized-or-hidden


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/

    2014年2月13日 7:46
    モデレータ
  • 現象は同じく改善しなかったです。
    Excel2010のパスに変えると画面が最初から最小化されて動作するんですが。。。

            Dim hProcess As System.Diagnostics.Process


            ExcelInfo.FileName = "C:\Program Files\Microsoft Office 15\root\office15\EXCEL.EXE"
            ExcelInfo.Arguments = "TestVBA.xlsm"
            ExcelInfo.WindowStyle = ProcessWindowStyle.Minimized

            hProcess = System.Diagnostics.Process.Start(ExcelInfo)

            hProcess.WaitForExit()

            hProcess.Close()

    2014年2月13日 8:41
  • 念のため。

    その Excel 2013 はどのエディションでしょうか?
    厳密には、どのようなインストール方法だったのでしょうか?

    インターネット上からダウンロードしてインストールするタイプの Office(市販されているもの)の場合、クイック実行という仕組みで仮想化されていますので、期待するとおりに動かないかもしれないと思って確認させていただきました。

    2014年2月13日 13:51
    モデレータ
  • 今晩は。私も試してみました。
    私の環境(Win7 SP1・ VB2012)で試してみたところ、ProcessStartInfo.WindowStyle プロパティに ProcessWindowStyle.Minimized を設定しても、最大化して起動するという現象が確認できました。ただし Win8.1・VB2012 では問題なく、最小化で起動します。

    何故この現象が発生するか定かではありませんが、検索したところ以下のスレッドが見つかりました。もしかするとこちらのスレッドが参考になるかもしれません。

    EXCEL2013で起動時に強制的に全画面表示になるのをやめたい


    ひらぽん http://d.hatena.ne.jp/hilapon/

    2014年2月13日 17:25
    モデレータ
  • 環境はWindows 7 SP1(32bit)でExcelも32bit版。
    ExcelはOffice Personal 2013で、Webインストールではなく
    Diskイメージをダウンロードしたものからインストールしました。
    一度アンインストールしてインストールし直しても現象は同じでした。

    Excel.exeのショートカットのプロパティで実行時の大きさを最小化に設定すると、
    エクスプローラから操作したときは最小化になりますが、
    VB2010のプログラムからそのファイルを指定しても
    ProcessWindowStyle.Minimizedは、やはり効かないですね。

    Excel2003, 2007, 2010までは動いていましたが。。。

    2014年2月14日 2:02