重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Wordからエクセルファイルを開くコードを書いているのですが・・・。
一応エクセルファイルは開いているようですが、なぜか非表示になって
しまいます。
そのあと何か別のエクセルファイルを開こうとすると、一緒に表示されます。
なぜなんでしょう?

書いたコードは以下になります。
(Dドライブの「テスト」フォルダ内の「テスト.xls」を開く場合)

Sub エクセルを開く()

Dim app As New Excel.Application
Dim book As Excel.Workbook
Set book = app.Workbooks.Open("D:\テスト\テスト.xls")

End Sub

単純にエクセルが開いて目の前に表示されてほしいだけなのですが・・・。
Wordがそのまま表示されています。
また、Wordは画面全体に表示させてないので、後ろに表示されていれば
分かるのですが、後ろにも表示されていません。

でも、何か別のエクセルファイルを普通にクリックして開こうとすると、一緒
に該当の「テスト」も表示されるという訳です。

どうしてでしょうか?
どのようにコードを書けばいいのでしょうか?
よろしくお願い致します。

A 回答 (2件)

こういうのはたくさんWEBに例が載っている。


http://homepage1.nifty.com/rucio/main/technique/ …  ほか。
Sub test16()
Dim ExcelApp As Object 'Excel.Application
Dim Book As Object 'Excel.Workbook
Dim Sheet As Object 'Excel.Worksheet
Set ExcelApp = CreateObject("Excel.Application")
ExcelApp.Visible = True
Set Book = ExcelApp.Workbooks.Add
Set Sheet = Book.Worksheets(1)
Sheet.Range("B5").Value = "Hello!"
'Book.SaveAs ("C:\VBExcel.xls")
End Sub
でどうですか。
ーーー
質問のそのままの例では
Dim app As New Excel.Application でエラーになった。
New関係は理屈か難しいので、VBAではとりあえず動くほう(CreateObject)をまねし、将来違いなど勉強されたら良い。
http://hanatyan.sakura.ne.jp/vbhlp/caution.htm
http://www.moug.net/tech/acvba/0060028.htm
    • good
    • 0

こういったものでよいのでしょうか?



Sub Sample()
 Dim TempFileName As String
 TempFileName = "D:\テスト\テスト.xls"
  With CreateObject("Excel.Application")
    .Workbooks.Open TempFileName
    .Visible = True
  End With
End Sub

上記の内容はこちら↓を参考にしています。
http://www.moug.net/tech/exvba/0150093.htm
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!