- ベストアンサー
エクセルワークブックのopenについて
すごく初歩的な質問ですが、、 現在、 Set wsp = ThisWorkbook.Worksheets("書き込みようエクセルシート") に対して、 Set FB = Workbooks.Open("\\Server3\xxxx") を使用して必要なデータの入っているエクセルブックを開き、 Do While FB.Sheets(1).Cells(l, 1) <> "" ' このような形で1件づつ読んで必要な処理をしています。 そのため、server3のエクセルが毎回開くのですが、 これをエクセルを開く必要はなく、ただ中のデータだけ読めればよいという風に変えるにはどうしたらよいのでしょうか? (見た目上の問題ですがデスクトップにエクセルが開くのが嫌だという意味です。) 初歩的な質問で申し訳ありませんが、よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
見た目だけであれば、 オープン直後に、即、非表示ではどうでしょう。 Set FB = Workbooks.Open("\\Server3\xxxx") ●ActiveWindow.Visible = False 非表示ではなく 該当ファイルを文字通り”開かない”で処理したい ということであれば別の方法になります。 以上。
その他の回答 (2)
- onlyrom
- ベストアンサー率59% (228/384)
再度の登場、onlyromです。 以下のようにBookのCloseメソッドの 名前付き引数SaveChangesをFalseにしてください。 FB.Close False 以上。
お礼
誠にありがとうございました!!!
- o_chi_chi
- ベストアンサー率45% (131/287)
要は見えなくすればいいということで。 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が残ったままになりますので注意しましょう。
補足
ありがとうございます。 この方法でやりたいと思うのですが、 見えなくして処理をしたあと、 データは変わっていないのに、(見えなくしたワークブックです) closeのときに「保存しますか?」と出てしまいます。 何か対処方法はあるのでしょうか?