• ベストアンサー

エクセルワークブックのopenについて

すごく初歩的な質問ですが、、 現在、 Set wsp = ThisWorkbook.Worksheets("書き込みようエクセルシート") に対して、 Set FB = Workbooks.Open("\\Server3\xxxx") を使用して必要なデータの入っているエクセルブックを開き、 Do While FB.Sheets(1).Cells(l, 1) <> "" ' このような形で1件づつ読んで必要な処理をしています。 そのため、server3のエクセルが毎回開くのですが、 これをエクセルを開く必要はなく、ただ中のデータだけ読めればよいという風に変えるにはどうしたらよいのでしょうか? (見た目上の問題ですがデスクトップにエクセルが開くのが嫌だという意味です。) 初歩的な質問で申し訳ありませんが、よろしくお願いします。

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

  • ベストアンサー
  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.2

見た目だけであれば、 オープン直後に、即、非表示ではどうでしょう。 Set FB = Workbooks.Open("\\Server3\xxxx")   ●ActiveWindow.Visible = False 非表示ではなく 該当ファイルを文字通り”開かない”で処理したい ということであれば別の方法になります。 以上。

chelny
質問者

補足

ありがとうございます。 この方法でやりたいと思うのですが、 見えなくして処理をしたあと、 データは変わっていないのに、(見えなくしたワークブックです) closeのときに「保存しますか?」と出てしまいます。 何か対処方法はあるのでしょうか?

その他の回答 (2)

  • onlyrom
  • ベストアンサー率59% (228/384)
回答No.3

再度の登場、onlyromです。 以下のようにBookのCloseメソッドの 名前付き引数SaveChangesをFalseにしてください。   FB.Close False 以上。

chelny
質問者

お礼

誠にありがとうございました!!!

  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

要は見えなくすればいいということで。 Dim objEX As Object Dim objWB As Object Dim objWS As Object Set objEX = CreateObject("Excel.Application") objEX.Workbooks.Open Filename:="\\Server3\xxxx", UpdateLinks:=0, ReadOnly:=True Set objWB = objEX.Workbooks("xxxx") Set objWS = objWB.Worksheets("Sheet1") (略) objWB.Close objEX.Quit Set objEX = Nothing Set objWB = Nothing Set objWS = Nothing Quit以前でやめるとEXCELObjectが残ったままになりますので注意しましょう。

関連するQ&A