vb.netでEXCEL起動がうまくできないのですが原因は何が考えられるでしょうか?

このQ&Aのポイント
  • VB.NETでEXCELのファイルを作成し、その後、System.Diagnostics.Process.Startでファイルを開こうとすると、Excelのタイトルバー、メニューバー、ステータスバーのみ表示された状態で、内容が表示されません。
  • ファイルは正しく保存されていますが、以前は開けていたようですが、最近は100%開けないようです。
  • メモリ不足が原因かもしれません。メモリは確か1G程度しかないです。
回答を見る
  • ベストアンサー

vb.netでEXCEL起動がうまくできないのですが原因は何が考えられ

vb.netでEXCEL起動がうまくできないのですが原因は何が考えられるでしょうか? VB.NETでEXCELのファイルを作成し、その後、 System.Diagnostics.Process.Start("C:\Test.xls") でファイルを開こうとすると、Excelのタイトルバー、メニューバー、ステータスバーのみ表示 された状態で、内容が表示されません。(Windowsの背景が表示された状態) この状態でもファイルは正しく保存されています。 以前は開けていたようなのですが、最近は100%開けないようです。 これはメモリ不足が原因なのでしょうか? メモリは確か1G程度しかなかったと思います。 お願いいたします。 OS:WindowsXP SP3 VB:VB.Net2008 Excel:Excel2000

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

先の処理でプロセスが残っているのではないでしょうか。 > System.Diagnostics.Process.Start("C:\Test.xls") を実行しないで、タスクマネージャを開いて Excel.EXE の プロセスがあり、エクスプローラで Test.xls を普通に ダブルクリックしても同じ現象なら、COM オブジェクトの 解放漏れです。

papope
質問者

お礼

すみません。遅くなりました。 やはり、別のPCでのみ正常に開かない状態で、うちのPCでは開きます。 また質問にも書かせて頂きましたが、以前は開いていたのです。

papope
質問者

補足

ご回答いただきまして、ありがとうございます。 補足させていただきますと、うちのPCで実行すると正常に開くのです。 別の(今のところ1台)PCでやると事象が発生するといったところです。 念のため、確認してみます。

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

>System.Diagnostics.Process.Start("C:\Test.xls") Excelのオプションの全般 --他のアプリケーションを無視する にチェックが入っているのではありませんか?

papope
質問者

お礼

遅くなりました。 そのようなことはありませんでした。

papope
質問者

補足

ご回答いただきまして、ありがとうございます。 確認してみます。

関連するQ&A

  • VB.netでEXCEL起動がうまくできないのですが

    VB.netでEXCEL起動がうまくできないのですが 原因は何が考えられますでしょうか? ※この質問は過去にしていますが解決していないため再投稿になります。 現在、VB.net2008でデータをエクセルに吐き出し、そのエクセルを表示するという仕組みを作成しております。 作成当初は問題なくエクセルは開いていたのですが、突然開かなくなり、エクセルのタイトルバー、 メニューバー、ステータスバーのみの表示になってしまいます。 私のPCでは現状でも開くのですが、1部(1台)のPCで、このような状況にあります。 エクセルデータの作成→セーブ→エクセルを開く の手順で行っているのでデータはセーブされているのですが開かなくて困っております。 OS:WindowsXP EXCEL:EXCEL2000 非常に困っています。 よろしくお願いいたします。

  • VB.NETで起動したExcelの閉じ方について

    VB.NET(2003)でExce(2003)を起動し、そのシートに動的コマンドボタンを貼り付けました。 このコマンドボタンには、Excelを閉じ、COMオブジェクトの開放を行うコードを記述しています。 これでうまくExcelは閉じることが出来き、Excelのプロセスも残らないのですが、直接Excelの[×]閉じるボタンで閉じるとExcelのプロセスが残ってしまいます。 これを防止するにはどのようにすればよいでしょうか? どうかよろしく御教示ください。

  • 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 です ----------------------------------------

  • VB.NETで起動させたExcelの多重起動を禁止させるには?

    VB.NETで起動させたExcelの多重起動を禁止させるには? [前提条件] VB.NETには、「Excelを起動させるボタン」と「Excelを終了させるボタン」があるとします。 「Excelを起動させるボタン」によって既存のExcelファイルを起動させ、 「Excelを終了させるボタン」によって起動中のExcelファイルを終了させたいと思います。 Excelを起動している最中は、VBとExcelとでデータの受け渡しをします。 [問題・課題] この方法ですと、「Excelを起動させるボタン」を押下するたびに、同じ既存のExcelファイルを多重起動されてしまいます。 ネット上にある参考文献を調べると、ひとつの関数(?)内で アプリケーション open ⇒ データの吸出し  ⇒ アプリケーション close となっていました。 [前提条件]で述べている使い方で、実現可能な方法があれば教えてください。 (参考になりそうなWebアドレスだけでも構いません) 以上、よろしくお願いします。

  • MSExcel と VB.NET

    Excelファイルについて 現在、mdbに登録されたデータを、 VB.NETを使用してExcelファイルに出力する処理を作成しております。 質問なのですが、 この形式で作成したExcelが、 お客様のPCで動かした際に開こうとすると、 'ファイル名.xls'のファイル形式と拡張子が一致しません。ファイルが破損しているか、安全ではない可能性があります。 発行元が信頼できない場合は、このファイルを開かないでください。ファイルを開きますか? と言うメッセージが表示されます。 なお、PGを作成したPCのExcelは、2000です。 お客様のExcelのバージョンは確認しておりませんが、 社内にあるOffice2010の入ったPCでは上メッセージは表示されませんでした。 ですので、出力処理自体は間違えてはいないと思います。 上メッセージについて調べてみると、Excel2007でxlsを開こうとすると、 そのメッセージが表示されることがある、とあったのですが、 どうしてそのメッセージが出るのかなどは分かりませんでした。 対処法としてレジストリを変更する方法が書いてあったのですが、 レジストリは極力いじりたくありません。 ほかに対処法などはありますでしょうか?

  • vb.netでのExcel表示

    お世話になります。 vs2005、vb.Netを使用し、webアプリを作成しています。 webserverにアップした複数シートのExcelファイル(.xls)を、 上下にフレーム分割されたフォームの下部に表示したいのですが、 なかなかうまくいきません。 まず、ExcelファイルのパスをJavaScriptにて下部フレームに表示するようにしました。 この方法で試したところ、対象のフレームにExcelファイルが展開され、シートの遷移等も実装できました。 ところが、その画面が表示中に別のExcelを起動すると、 別起動したExcelと、Excelファイルを表示してるアプリが混同してしまい、 正常に動作しなくなってしまいました。 (切り替えようとしても、アプリのExcelが優先されてしまう) プロセスを確認したところ、1つのexeしか確認できなかったため、 これも関係していると思うのですが・・・ あと、Excelファイルをhtmlにして表示する方法があると聞いたことがあるのですが、 こちらも、もしご存知の方がおりましたら、お教え願います。 抽象的な質問で申し訳ありませんが、ご教授お願いします。 また、参考になるようなサイト等ありましたら、合わせてお願いします。

  • vb.netでエラー

    こんにちわ。 いまvb.netの勉強をしている者です。 初歩的な質問になるかと思いますが,教えてください。 フォーム上のリンクラベルをクリックして,あるwebページを 表示するために下記のコーディングをしました。 「System.Diagnostics.Process.Start("http://www.microsoft.com/japan/")」 実行するとこの行で, "Win32Exceptionはハンドルされませんでした" というメッセージが表示されてしまいます。 この場合何が原因と考えられるでしょうか? 教えてください。よろしくお願いします。

  • vb から Excel vba をうまく操作できない。

    VB 初心者で、困っています。 Excel VBA でいろんなツールを作成していますが数が多くなったので、今回、このツールを呼び出すメニューを作ろうと考えて、VB2008でメニューを作成したのですがうまく動作しません。 Excel VBAで作成しているツールは、単独で動作させれば、一番最後に新たなExcelファイルを作成・画面表示でツール自体は終了。となるのですが、VBメニューからツールを起動させると、最後に作成しているはずのExcelファイルが画面表示されません。(ファイルは作成されているみたいですが・・・) ・Excel VBA の新たなファイルへの出力部分です。     Worksheets("シート").Copy     Unload Me     Application.WindowState = xlMaximized     Workbooks("●●.xls").Close SaveChanges:=False ・VB2008 で呼び出すメニューボタン部分です。 Dim Exap As Object Exap = CreateObject("Excel.application") Exap.Workbooks.open("C:\●●.xls") Exap = Nothing よろしくお願いします。

  • VBでExcelが起動されているか知りたい

    環境 winXP Office2000 Excel VB6.0 sp5 VBからExcelが起動されているか知りたいのです。 【状況1】 [a.xls]を起動している状態で下記を実行すると問題なく起動が確認できます。 【状況2】 [a.xls][b.xls]を起動してて[b.xls]が前面にある場合は下記を実行しても[a.xls]を探せません。 またウインドウを最大化にしていない場合も"Microsoft Excel -"という文言がいらない?せいか探せません。 [FindWindowEx]を使用すればできるのかと思いましたがイマイチ使い方が分からず困っています。 よろしくお願いします。 'sampleソース--------------------------------------------- hwnd = FindWindow("XLMAIN", "Microsoft Excel - a.xls") If hwnd = 0 Then Msgbox(" 0 は、Excel が起動していないことを示します。") Else Msgbox(" 起動中") End If 'sampleソース---------------------------------------------

  • VB.NET WebBrowserの動作

    こんにちは。 VB.NET Framework2.0でユーザフォーム開発しています。 Excel2010をインストール済みの環境で、WebBrowserからxls形式のExcelファイルを読み込むと、Excelの内容が表示されません。Excel2003をインストールした環境では、正しくWebBrowserにExcelの内容が表示されます。 解決の方法をご存知の方がいらっしゃいましたら、教えてください。