• ベストアンサー

セルのファイルを起動したい

セルに入っているファイル名を開きたいと考えています。 ファイル名はパス付きで入っています。 拡張子が.docの時はワードで、.xlsの時はエクセルで、.pdfの時はアクロバットで、その他該当するアプリケーションを立ち上げてそのファイルを開き、そしてパス名だけの時はエクスプローラで該当ディレクトリを開きたいと思っています。 拡張子を見てワード、エクセル、アクロバットまでは立ち上げるVBAまでは出来ました。 エクスプローラが分かりません。 どなたか教えていただけないでしょうか。 またファイル名が入っている場合、現在は直接アプリケーションを起動するやり方をとっていますが、拡張子から自動的に適切なアプリを立ち上げることはできないでしょうか。 よろしくお願い申し上げます。 現在の方法: Sub test() Shell "C:\Program Files\Microsoft Office\OFFICE11\WinWord.exe " & _ "c:\test.doc", vbMaximizedFocus End Sub

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

こんばんは。 CreateObject("WScript.Shell").Run パス をお試しください。 パスがファイルの場合は、拡張子に関連付けられたプログラムで、 パスがフォルダの場合は、エクスプローラーでそれぞれ開きます。

believe_me
質問者

お礼

回答ありがとうございます。 これだけで全て実行できるとは素晴らしいですね。

その他の回答 (3)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.4

#2 です。補足します。 > 以下のVBAで該当ディレクトリのエクスプローラが立ち上がりました。 Explorer.exe は、通常環境変数でパスが通っているので、Exe までのフルパス を書く必要はありません。むしろ、フルパスで書くと Windows2000 と WindowsXP などのように、Windows フォルダのパスが異なる OS で動かないコードになって しまいますよ。 参考>> Explorer.exe のパス(うろ覚えだけど...) ・Windows9x/ME   --> C:\Windows\Explorer.exe ・WindowsNT/2000  --> C:\WinNT\Explorer.exe ・WindowsXP    --> C:\Windows\Explorer.exe サンプルコードです。 ' // Explorer を指定して開く場合 Sub Test1()      Dim sPathName As String      ' パスは途中空白があると失敗するので ”(Chr(34))で括る   sPathName = Chr(34) & "C:\Windows" & Chr(34)   ' Shell の場合は、パスを開くアプリを指定しなければならない   Call Shell("Explorer.exe " & sPathName, vbNormalFocus) End Sub ' // WSH を使う場合 Sub Test2()   Dim sPathName As String      ' パスは途中空白があると失敗するので ”(Chr(34))で括る   sPathName = Chr(34) & "C:\Windows" & Chr(34)   ' WSH を使った場合は、自動的に関連付けられたアプリで開く   CreateObject("WScript.Shell").Run sPathName End Sub 余談になりますが Excel のハイパーリンクが、最も手軽な方法ですね。 手軽な一方で、使用するアプリを選べないのが弱点に思います。 例えば、普段使っている WEBブラウザが InternetExplorer 以外であっても Excel のハイパーリンク機能は *.htm ファイルを InternetExplorer で 開いてしまいます。完全に関連付いたアプリで開けるわけではないようです。 ある種のファイルに限定された制約ではありますが。 どうしても自分がいつも使っているブラウザで開きたい、アプリを指定して 開きたい...といったニーズがある場合のみ、上記のような VBA を使うと良い と思います。ニーズに合わせて使い分ると良いでしょうね。

  • saru_1234
  • ベストアンサー率33% (452/1341)
回答No.3

Excel なら ハイパーリンクで記述しておけば 起動しますが。 挿入(I)→ハイパーリンク(I) または <Ctrl>+K でフルパスでファイル名まで記述すれば登録されたアプリで、 フォルダ名までならエクスプローラが開きます。 Office 系アプリだと、新しいウィンドウがまったく同じサイズで ぴったり重なって開いたりするので、 もとのウィンドウが閉じてしまったかと一瞬びっくりします。

believe_me
質問者

お礼

回答ありがとうございます。 確かにハイパーリンクにすればいいのですが、サーバーのディレクトリから大量にセルを作りますので、いちいちハイパーリンクを指定することはできないと思います。

  • michi_001
  • ベストアンサー率32% (21/65)
回答No.1

一応。。。 C:\Windows\explorer.exe ですが・・・ これの場合、そこまでしなくても、 Windowsキーを押しながら「E」キーをクリックするだけでも出てきますが・・・?

believe_me
質問者

補足

ええとですね。セルに"C:\temp"が入っている場合、"C:\temp"が開かれた状態でエクスプローラを立ち上げたいのですが。 ご回答の方法ではエクスプローラが立ち上がるだけですね。 でも「C:\Windows\explorer.exe」から何となくやり方が連想できました。 以下のVBAで該当ディレクトリのエクスプローラが立ち上がりました。 Sub test3() Shell "C:\Windows\explorer.exe " & _ Selection.Text, vbMaximizedFocus End Sub

関連するQ&A

  • Acrobat7.0ProfessionalでPDFを作成するときに

    Acrobat7.0はWordの.docからPDFを作成できますが、AcrobatをインストールしているPCに Word(Office)もインストールしていないとPDF作成ができなのですか? Acrobatを起動してファイル>PDFを作成で.docを指定すると「.docを作ったアプリケーションを起動しています・・・」と出ます。 私のPCにはOfficeが入っているので大丈夫なのですが、今度新しく来るPCがOfficeが入っていません。 印刷からPDFを作成すればアプリケーションを起動しなくて済むのでしょうが、AcrobatからPDFを作成するにはOfficeが入っていないといけませんか? 実は新しいPCにはOpenOfficeとAcrobatを入れようと思っています。OpenOfficeから.docを生成してAcrobatでPDFを作成できるのでしょうか? マニュアルにもそのへんは書いていないようです(Officeがインストールされていることが前提で書かれています)。 よろしくお願いします。

  • エクセルだけファイルからの起動ができなくなりました。

    使用環境はハード:東芝ダイナブック、OS:WIN98SE、MS-Office:97と2000が混在。(普段2000しか使っておらず、拡張子の関連付けでも2000とリンクしています) ある日PCが暴走してフリーズしてしまいました。そのとき、アクロバット、ノーツ、IE、ワード2000、エクセル2000くらいを開いていたと思います。仕方なく、リセットしたところ、それ以来エクセルに関してはファイルからの起動ができなくなりました。 ファイルのアイコンは変わらずいつものエクセルマークのままなのですが、ダブルクリックをすると、エクセル自体は起動するものの、そのあと「ファイル'○○○.xls'(またはその構成ファイル)が見つかりません。パスおよびファイル名が正しいか、必要なライブラリがすべて利用可能かどうか、確認してください。」という赤いバッテンマークのメッセージが出て、「OK」ボタンしかなく、ファイルが開きません。 その状態でエクセルから「ファイル」「開く」と操作すると開きます。つまり、先にエクセルを起動しておいてメニューから「ファイル」「開く」と操作をすれば開けるのですが、ファイルをダブルクリックする開き方では前記のようなメッセージが出て開けないのです。でもエクセル自体は起動するので拡張子との関連付けには異常はないと思います。 ちなみにワードの方は問題なくどういう方法でも開けます。 何となくOffice2000を再インストールすると直りそうな気もしますが、会社のパソコンでして、できれば再インストールでの対処はしたくありません。(手続が面倒なので最終手段です) 再インストール以外で対処法をご存知の方がいらっしゃいましたら、ぜひともご教示ください。わがままなお願いかもしれませんがよろしくお願いします。

  • AcrobatのPDFファイルをファイル名指定するプログラムを書きたい。NTと98の違い?

    AcrobatのPDFファイルをファイル名指定するプログラムを書きたいと思って、以下のようなWord2000のVBAプログラムを試しました。(コントロールパネルで、通常使うプリンタは、Acrobat PDFWriterにしてあります。) WindowsNT4.0ならば、大丈夫なのですが、Windows98で同じことをすると、ファイル名が指定したことになりません。 対処方法等ご存知の方がおられましたらぜひ教えてください。 Sub MacroTest() Application.PrintOut OutputFileName:="c:\test", _ Append:=False End Sub

  • ワード・エクセル起動してファイルを開くには

    始めて質問します。 HTMLにて、リンクとしてワード・エクセルファイルを指定すると、インターネットエクスプローラで、そのファイルを開いて見ることができるのですが、ワード・エクセルアプリケーションを起動して、そのファイルを開くようにしたいのですが、どのようにしたらよいのですか。 ご指導御願いします。

    • ベストアンサー
    • HTML
  • ~$ファイル名.doc とは?

    ワード2003のですが、 ワードのファイル「ファイル名.doc」を開くと、その「ファイル名.doc」と同じフォルダに 「~$ファイル名.doc」というファイルが出来るのですが これはなんでしょうか? エクセルも開いていますが、エクセルにはそんなファイルはできません。 ~$ファイル名.docを開こうとすると 「コンバータMSWRD632.WPCを起動できません」が表示されます。 ネットで検索したら http://answers.microsoft.com/ja-jp/office/forum/officeversion_other-word/%E3%82%B3%E3%83%B3%E3%83%90%E3%83%BC%E3%82%BFmswrd/dbe9def4-3068-49c8-9043-e8d08d9a3250?tab=AllReplies の記事を見つけたのですが ワードのファイルは通常通り開けるので 特に対策は必要ないのでしょうか?

  • 謎のファイル?

    友人からメールでMS-Word2000のファイルを 添付して送ってもらうのですが、 本来拡張子は「.doc」のはずですが なぜか「.dat」のファイルが送られてきます。 本人はWord文書で保存したファイルを何もいじらずに 送っているというのですが。 そこで質問なんですが 「.dat」のファイルはどのアプリケーションのファイルなのでしょう? またなぜ拡張子が変わるのでしょうか? 困ってますのでよろしくお願いいたします。

  • Wordの一時ファイル

    エクスプローラからWord文書をマウスのダブルクリックで開くと、同じディレクトリにWordの一時ファイルが作成されますが、これが作成されないようにできないでしょうか? 例えば、「テスト.doc」をダブルクリックで開くと同じディレクトリに「~$テスト.doc」という名前で一時ファイルが作られます。 この一時ファイルを作らないようにする、もしくは自分で指定したフォルダに作成するようにしたいと考えています。 Wordのファイルメニューから読取専用で開けば、一時ファイルは作成されない様ですが、エクスプローラーから開いた時も同じようになって欲しいと思ってます。 共通サーバーにWord文書を保存している場合、文書を開く度に一時ファイルを作られて、フォルダの日付がどんどん更新されてしまい、そのフォルダ下を本当に更新した日付が分からなくなってしまうためです。 よろしくお願いします。

  • ExcelやWordのファイル:拡張子がなくても開くのはなぜでしょうか

    拡張子がなくても、Excelのファイルはダブルクリックで開きます。 それはなぜですか。 詳しく述べます。 エクスプローラ(またはデスクトップ)上に、テキストファイル(拡張子txt)があります。 このファイルの拡張子を外します。(~~.txt → ~~) このとき、 「拡張子を変更すると、ファイルが使えなくなる可能性があります。変更しますか?」 と訊いてくるので、「はい」をクリックすると、ファイルのアイコンはウィンドウズのマーク(旗みたいなもの)になります。 これは、拡張子がなくなったために、アイコンとの関連付けがなくなったからだと思います。 このファイルをダブルクリックすると、「ファイルを開くアプリケーションの選択」というウィンドウが立ち上がります。 拡張子がないから、どのアプリケーションを使うのかわからないのですね。 他方、 エクスプローラ(またはデスクトップ)で、エクセルのファイルの名前の拡張子を外します。 (~~.xls → ~~) このファイルをダブルクリックすると、エクセルが立ち上がって、ファイルが開かれます。 なぜ、エクセルの場合は、拡張子がなくても開けるのでしょうか。 ワードで作ったdocファイルでも、エクセルと同樣です。 拡張子がなくてもダブルクリックで開ける設定があるのでしょうか。 たとえ、エクセルやワードのファイルでも、txtという拡張子を付けると、テキストエディタで開く(私のPCの場合はViViというテキストエディタが設定されていますが、普通はメモ帳ですよね。)ので、拡張子がまったく無視されているわけでもないです。 (もちろん、中身は文字化けしていますけど。) Windows98SE Excel2000 Word2000

  • アプリケーションタイトルにファイル名のみ表示したい

    エクセルファイルを開いた時に、 アプリケーションタイトルに拡張子を含まない自身のファイル名を設定したいので Private Sub Workbook_Open() Application.Caption = Left(ActiveWorkbook.Name, InStrRev(ActiveWorkbook.Name, ".") - 1) End Sub としたのですが、 こうすると、タスクバーから見た時などは ファイル名 - ファイル名 .xlsm と表示されてしまいます。 - より右の「 ファイル名 .xlsm」は不要なのですが、 どうしてこうなってしまうのでしょうか? ファイル名のみ表示させたいです。 こうなるのは全画面表示の場合のみで最大化をやめるとファイル名のみ表示されます。 全画面表示でエクセルは開きたいです。

  • エクセルのマクロを利用したワードの開き方

    エクセルのマクロを利用したワードの開き方を教えてください。よろしくおねがいします。ちなみにコードは Option Explicit Dim 行, ドライブ, 親フォルダ, 子フォルダ, ファイル名, 拡張子, パス Dim フルパス As String Dim ワード As Object Dim ワード文書 As Object Sub 環境リストボックスでクリックされた() 行 = Worksheets("呼出").Cells(2, 1) + 1 管理表シートから値を取り出す 選択されたファイルを開く End Sub Private Sub 管理表シートから値を取り出す() ドライブ = Worksheets("管理表").Cells(行, 2) 親フォルダ = Worksheets("管理表").Cells(行, 3) 子フォルダ = Worksheets("管理表").Cells(行, 4) ファイル名 = Worksheets("管理表").Cells(行, 5) 拡張子 = Worksheets("管理表").Cells(行, 6) End Sub Private Sub 選択されたファイルを開く() ChDrive ドライブ パス = ドライブ & "\" & 親フォルダ & "\" & 子フォルダ ChDir "C:\ときめき\環境" If 拡張子 = "xls" Then Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True ElseIf 拡張子 = "doc" Then フルパス = パス & "\" & ファイル名 & ".doc" 'フルパスを作成 Set ワード = CreateObject("Word.Application") 'Wordを起動する ワード.Visible = True 'Wordを表示する Set ワード文書 = ワード.documents.Open(フルパス) 'Word文書を開く End If End Sub となっています。 あと、OSはwindowsMeで ソフトはエクセル、ワード共に2000を利用しています。 よろしくおねがいします。

専門家に質問してみよう