• 締切済み

VC++アプリからEXCELを起動できない。

じんちゃんと申します。 EXCEL2003をVCアプリからバックグラウンド起動したいのですが上手くいきません。 どなたかご存知でしたら助けてください。主な条件は次の通りです。 [概要] VCアプリ内でCreateProcess()を用いてEXCEL.EXEをブック(.xls)引数で起動しています(ブックはマクロ付き)。 [環境]  ・EXCEL2003のみの製品をインストール。   VB6.0のランタイムを入れています。   Framework1.1も念のため入れました。  ・VC++.Netで開発したEXEからEXCELを起動しています。  ・OSはWindowsXP SP2です。  ・以前は動いていたのですがある日以降動かなくなりました。  ・現在でも起動対象ブックを手動で起動すると画面が問題なく表示されます。 [現象] 1.起動するとEXCELの起動ロゴが一瞬表示されるが起動しない。   タスクマネージャを見てもEXCEL.EXEが存在しない。 2.起動失敗後、対象ブックを手動で開くとセーフモード起動を聞かれます。   加えて起動後、マクロセキュリティを低に設定していたのが強制的に高   に設定されてしまっています。   手動起動後、以降、セーフモード起動は聞かれません。   CreateProcess()からの起動(バックグラウンド起動)した場合にのみ起動失敗します。 3.EXCEL2003を再度インストールして実施しても変化なし。 4.CreateProcess()の戻り値は正常でした。 5.他のNOTEPAD.EXEをEXCEL.EXEに変更して起動すると表示される。   恐らくEXCEL2003のみの固有問題と思います。   他のEXCELバージョンでは問題なく起動できます。 6.EXCEL2003だとブック指定なしでEXCEL.EXEを単体起動しても起動に失敗します。 よろしくお願いします。

みんなの回答

回答No.1

EXCEL2003のみの固有問題と予測しているのなら CreateProcessからShellExecuteに変更したときは、どうですか char File_char[] = "C:\\File.xls"; ShellExecute( 0,"open", File_char, "", "", SW_SHOWMINNOACTIVE); //アニメーションを好まないときは、SW_MAXIMIZEやSW_HIDEなどに変更。 ほかにCOMをもちいて起動する方法もありますよ。 http://www16.plala.or.jp/web-yukimaturi/programming-e2003.html

nahcnij
質問者

お礼

お返事ありがとうございます。 昨日判明した事実ですが、呼び出し元プロセスのある処理を通さ なければ起動できることが判明しました。 CreateProcess()が正常リターン、及びEXCEL起動ロゴが一瞬出る のでAPPの問題とはあまり考えていませんでしたが、APPのメ モリリークなどの想定外問題が原因と今は考えています。 起動方法を変えて緊急対策的に処置をまずはしてみようと考えて います。ご教示ありがとうございました。

関連するQ&A

  • VC++アプリからEXCELを起動しても画面が出ない

    はじめまして。 じんちゃんと申します。 EXCEL2003をVCアプリから起動したいのですが上手くいきません。 どなたかご存知でしたら助けてください。主な条件は次の通りです。 [概要] VCアプリ内でCreateProcess()を用いてEXCEL.EXEをブック(.xls)引数で起動しています(ブックはマクロ付き)。 [環境]  ・EXCEL2003のみの製品をインストール。VBランタイムは入れています。   VB6.0のランタイムを入れています。   Framework1.1も念のため入れました。  ・VC++.Netで開発したEXEからEXCELを起動しています。 2.OSはWindowsXP SP2です。 3.以前は動いていたのですが突然動かなくなりました。 4.現在でもブックを手動で起動すると画面が問題なく表示されます。 [現象] 1.起動するとEXCELの起動ロゴが一瞬表示されるが起動しない。 2.起動失敗後、ブックを手動で開くとセーフモード起動を聞かれます。   加えて起動後、マクロセキュリティを低に設定していたのが強制的に高   に設定されてしまっています。   CreateProcess()からの起動した場合にのみ起動失敗し環境が変わりま   す(前述のセキュリティレベルが強制変更される)。 3.EXCEL2003を再度インストールして実施しても変化なし。 4.CreateProcess()の戻り値は正常でした。 5.他のNOTEPAD.EXEをEXCEL.EXEに変更して起動すると表示される。   恐らくEXCELのみの固有問題と思います。 6.ブック指定なしでEXCEL.EXEを単体起動しても起動に失敗します。 よろしくお願いします。

  • EXCEL 個人用マクロブックが起動しなくなりました

    EXCEL2002を使用していますが、個人用マクロブックが起動しなくなりました。 同様の質問がありましたので、回答を参考にマクロセキュリティレベルを確認し、一度Personal.xls ファイルを削除して再度個人用マクロブック作成していみましたがだめでした。 手動で個人用マクロブックを起動してマクロを実行してもエラーはでないのですが、正しく動作しません。 EXCEL2002を再インストールしてもだめだったので、EXCEL2002をアンインストール後一度EXCEL2000をインストールすると個人用マクロブックか起動するようになったので、再度EXCEL2002をインストールしてみるとまた個人用マクロブックは起動しなくなってしましました。 仕事上よく使用するアイコン等が使えなくて困っています。 よい対処方法がありましたら、ぜひ教えてください。 よろしくお願い致します。

  • VBからEXCELを起動する

    VBよりExcelを起動するプログラムで困っています。 1.VBよりGetObject関数でTest.xlsを開く 2.Test.xls内のAuto_Openマクロでパラメータファイルをよみ、そこに指定されているエクセルファイルを新しいブックでを開く ということをしたいのですが(「マクロを有効にする」のダイアログは表示されてもかまわないです)、何故かTest.xlsが開いたと思ったらすぐ閉じてしまいます(Excel自体は終了してないですべてのワークシートが閉じた状態)。 Auto_Openマクロは走ってるようなのですが、ついでにCloseマクロも走ってしまいます。 ちなみにTest.xlsを単体で動かしたときは問題なく動くのです・・・。 以前はVB4+Excel95の環境でAPI(CreateProcess)を使用し同作業を行っていたのですが、そのAPIが長いファイル名のスペース(OFFICEがある「Program File」のスペース)を認識しないそうで、この方法が使えないということでGetObjectを使用してみたのですが・・・。 何か根本的な間違いをしているのか、それともコードにエラーがあるのかさっぱりわからずお手上げです。 うまく疑問点を説明できているか不安なんですが、わかる方、どうかご指導願います。 よろしくお願いします。 ---------------------------------------- OSは、Windows 2000 アプリケーションは、Excel 2000 です ----------------------------------------

  • EXCELの起動時のトラブル

    EXCELを立ち上げると、タスクバーに、現在起動しているアプリケーションソフトの一覧に、”Microsoft Excel-Book1"の他に"GDI+ Window"という表示が出ます。そのまま、ブック自体の保存はできるのですが、次回起動時に、 「Excelは前回正常に起動できませんでした」というメッセージが出て、セーフモードでの起動を促してきます。一度セーフモードで起動すると、一旦終了した後に再起動しても正常に起動するのですが、XPをシャットダウンして、Excelを起動すると、同じ現象が再現します。PCの環境は、OSはXPホームエディションのSP2、CPUはPentium4 1.70GHz、メモリは256MBです。この現象の理由、解決法など、ご教示の程、よろしくお願いします。

  • 別アプリの起動、終了について

    VC++にて 以下でメモ帳を起動することが出来ました。 ::WinExec(_T("notepad.exe"),SW_SHOW); こんどは、CreateProcess()でメモ帳を起動したいのですがどう書けば良いのですか? また、メモ帳を終了させるにはどう記述すれば良いのでしょうか? よろしくお願いします。

  • Excel2000で起動していないのに既に起動していますと表示される

    naritanです。 Excelのマクロ付きブックがあります。 このExcelを開くと、必ず、「既に起動しています。・・・」というメッセージが表示されてきます。 プロセスを見ても、Excel.exeは動いていません。 ご教授のほど、よろしくお願い致します。

  • 【Excel起動時の「~マクロを含んでいます。」メッセージを制御したい】

    VBAよりShell関数を使用して特定したExcelファイルをvbHideモードで開き、バックグラウンドで処理を行うプログラムを作成しています。 問題なのは、開こうとするExcelファイルには、マクロが入力されいるため、開く際には「~マクロを含んでいます。」メッセージが表示されるので、ここで、「有効にする」「無効にする」の選択を聞かれますが、「有効にする」をプログラムの制御で選択することは可能でしょうか? いい案がありましたら、教えて頂きたいと思います。 宜しくお願いいたします。 Excel2000使用です。

  • Office2007(Excel2007)が起動しません。

    Excel2007を起動すると、一瞬立ち上がるがすぐに消えメッセージが出ます。「Excelは前回正常に起動しませんでした。Excelをセーフモードで起動すると、起動時に問題を修正したり特定してプログラムを正常にきどうすることに役立ちます。ただし、セーフモードでは、一部の機能が使用できないことがあります。 Excelをセーフモードで起動しますか?」の表示が出【はい】を選択しセーフモードで起動は出来ますが。次回も同じメッセージが出ます。 OS:VIST+Office2007 ウィルスソフトはBフレッツプレミアム添付のウィルスバスタです。Word2007は正常起動しますが、Excel2007とPowerPoint2007が起動しません。何度か再インストールや修復を実行しましたが同じです。先日ウイルススキャンを実施ごからおかしくなりました。対応方法を教えて下さい。 よろしくお願いします。

  • エクセルファイルが開けない

    Excelは前回起動に失敗しました セーフモードを使用すると問題の解決に 役立ちますが 一部の機能が使用できないことがあります セーフモードで起動しますか? との表示が出る ※OKWAVEより補足:「富士通FMV」についての質問です。

  • エクセルが起動出来なくなりました。正常に作動するようにするにはどうしたら良いのでしょうか?

    エクセルが起動出来なくなりました。正常に作動するようにするにはどうしたら良いのでしょうか? 「Excelは前回正常に起動しませんでした。Excelをセーフモードで起動すると、起動時の問題を修正したり特定してプログラムを正常に起動するのに役立ちます。ただし、セーフモードでは、一部の機能が使用できないことがあります。 Excelをセーフモードで起動しますか?」 というメッセージが出ます。「はい」をクリックすると音がしてウインドウが閉じてしまい、結局起動出来ません。 違うメッセージが出る時もあります。 「Excelをセーフモードで起動できませんでした。アプリケーションの自動修復を開始しますか?」 ここで「はい」をクリックすると、 「Microsoft Office Personal 2007を設定しています。しばらくお待ち下さい。(必要な情報を収集しています...)」 暫くすると 「Microsoft Office Personal 2007のセットアップが正常に終了しました。」 という画面が出るのですが、ここで再びExcelを起動しようとしてもやはり初めと同じ状態になり、起動出来ません。 Excelを完全に正常に作動するようにするにはどうしたら良いのでしょうか?どなたか御回答を宜しく御願い致します。