• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL2010のVBAについて教えて下さい。)

EXCEL2010のVBAでフォルダ内の異なるファイルを開く方法

このQ&Aのポイント
  • EXCEL2010のVBAで、フォルダ内にあるさまざまなファイルを開く方法について教えてください。
  • 2002年や2003年ではうまく動作していたVBAコードが、EXCEL2010ではうまく動作しなくなりました。
  • 具体的には、EXCEL以外のファイルを開くことができません。どのように修正すればよいでしょうか?

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

#1のご指摘の通りではないですか。 下記はPPTの部分など省略してます。エクセルの中から、CreateObjectでワードを呼び出しているので、objwd.Visible = Trueを入れると文書画面が現れます。画面に見えてないだけが判るはずです。 エクセルはエクセルの中から開いているので不要でしょう。 MsgBox "ワードを開いた"は確認のためで用済み後削除のこと。 むしろGetOpenFilenameの引数の書き方で苦労した。PPTが無いので、その分を増やしてください。 そして、「ファイルを開く」のダイアロウグの、「ファイルの種類」の▼をクリックして、エクセルやワードやPPTの拡張子を指定することになります。するとそれに絞られたファイルの一覧がでます。 ーー Sub test01() myFileName = Application.GetOpenFilename("エクセル ファイル(*.xls),*.xls,エクセル ファイル(*.xlsm),*.xlsm , ワード ファイル(*.doc),*.doc,ワード ファイル(*.docx),*.docx") If Right(myFileName, 4) = ".xls" Or Right(myFileName, 5) = ".xlsx" Then Workbooks.Open myFileName MsgBox "エクセルを開いた" Workbooks.Close ElseIf Right(myFileName, 4) = ".doc" Or Right(myFileName, 5) = ".docx" Then Set objwd = CreateObject("Word.Application") Set wd = objwd.Documents.Open(myFileName) objwd.Visible = True MsgBox "ワードを開いた" wd.Close Set objwd = Nothing ElseIf Right(myFileName, 4) = ".ppt" Or Right(myFileName, 5) = ".pptx" Then Set PPtApp = CreateObject("Powerpoint.Application") PPtApp.Presentations.Open (myFileName), ReadOnly:=msoFalse Else MsgBox "ファイル不正:" & FileType Exit Sub End If End Sub

siitakekonbu
質問者

お礼

ありがとうございます。 Visible = True で開くことは出来ましたが、EXCELの画面に已然と隠れたままです。 全面にするにはEXCELを縮小化する事も書く必要がありそうですね。

その他の回答 (1)

回答No.1

もしかして。 開かないのでは無く、開いた Word , PowerPoint が見えないだけ(Visible = False)では? CreateObject で OfficeApplication を実行した場合、Application.Visible の規定値は False です。 objwd.Documents.Open の下に objwd.Visible = True を追加してみて下さい。 同様に、PttApp.Presentations.Open の下に PttApp.Visible = True を追加してみて下さい。