セルに入っているファイル名を開きたいと考えています。
ファイル名はパス付きで入っています。
拡張子が.docの時はワードで、.xlsの時はエクセルで、.pdfの時はアクロバットで、その他該当するアプリケーションを立ち上げてそのファイルを開き、そしてパス名だけの時はエクスプローラで該当ディレクトリを開きたいと思っています。
拡張子を見てワード、エクセル、アクロバットまでは立ち上げるVBAまでは出来ました。
エクスプローラが分かりません。
どなたか教えていただけないでしょうか。
またファイル名が入っている場合、現在は直接アプリケーションを起動するやり方をとっていますが、拡張子から自動的に適切なアプリを立ち上げることはできないでしょうか。
よろしくお願い申し上げます。
現在の方法:
Sub test()
Shell "C:\Program Files\Microsoft Office\OFFICE11\WinWord.exe " & _
"c:\test.doc", vbMaximizedFocus
End Sub
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 を使うと良い
と思います。ニーズに合わせて使い分ると良いでしょうね。
No.3
- 回答日時:
Excel なら
ハイパーリンクで記述しておけば
起動しますが。
挿入(I)→ハイパーリンク(I)
または
<Ctrl>+K
でフルパスでファイル名まで記述すれば登録されたアプリで、
フォルダ名までならエクスプローラが開きます。
Office 系アプリだと、新しいウィンドウがまったく同じサイズで
ぴったり重なって開いたりするので、
もとのウィンドウが閉じてしまったかと一瞬びっくりします。
回答ありがとうございます。
確かにハイパーリンクにすればいいのですが、サーバーのディレクトリから大量にセルを作りますので、いちいちハイパーリンクを指定することはできないと思います。
No.1
- 回答日時:
一応。
。。C:\Windows\explorer.exe
ですが・・・
これの場合、そこまでしなくても、
Windowsキーを押しながら「E」キーをクリックするだけでも出てきますが・・・?
この回答への補足
ええとですね。セルに"C:\temp"が入っている場合、"C:\temp"が開かれた状態でエクスプローラを立ち上げたいのですが。
ご回答の方法ではエクスプローラが立ち上がるだけですね。
でも「C:\Windows\explorer.exe」から何となくやり方が連想できました。
以下のVBAで該当ディレクトリのエクスプローラが立ち上がりました。
Sub test3()
Shell "C:\Windows\explorer.exe " & _
Selection.Text, vbMaximizedFocus
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PDF エクセルのVBAでファイルをpdfで保存するとソフトによっては開けなくなる 3 2022/06/08 10:20
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) フォルダ内のワードファイルをPDFに一括変換するVBA 3 2023/06/09 16:51
- フリーソフト イーファンビューでwebpファイルが開けません 1 2022/07/12 07:07
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- その他(プログラミング・Web制作) python OpenPyXLを使って出力結果をエクセルに書き込み 2 2022/06/04 19:46
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Excel(エクセル) ドキュメントに保存していたエクセルのファイルが開きません。 2 2022/12/02 09:38
- Excel(エクセル) フォルダ内のエクセルファイルを開かずにデータ採取する関数式 2 2022/12/22 22:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォトショップ→イラストレータ...
-
MSアクセスのjpgファイル表示
-
オセロ(リバーシ)の棋譜のパ...
-
cseのociw32.dllロードエラーに...
-
DVDにデータのバックアップ。深...
-
セルにフルパスを入力してPDFフ...
-
ニュー速VIPで使われるパスワー...
-
WindowsとMacではパスが違うの...
-
USJのスタジオパスとエクスプレ...
-
よみうりランドの入場料金につ...
-
白飛びした(明るい)写真をiPhon...
-
エクセルである行以下全部を削...
-
EXCEL VBAで全選択範囲の解除
-
visual studio でインデントを...
-
「無」と「未」の使い方
-
Photoshop で8bit /チャンネル ...
-
VBAでファイルを開くときにファ...
-
Wordでドロップダウンリスト連動
-
ipadのpagesでMS明朝を使う方法...
-
gimpで色交換できません。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessマクロで出てくるコマン...
-
ExcelVBA ショートカットファイ...
-
ActiveWorkbook.Pathの一つ上
-
フォルダ選択でなくフルパスを...
-
Axfcのダウンロードのパスワード
-
RmDirでフォルダが削除できない...
-
Accessのフォームで商品の画像...
-
USJのスタジオパスとエクスプレ...
-
Photoshop cc 正円形のパス線が...
-
新幹線について
-
ヘルプマークって印刷した物を...
-
ディズニーランドのDPAとPPの取...
-
HEWのワークスペースが開けない
-
オセロ(リバーシ)の棋譜のパ...
-
ケーブルテレビをパソコンで見...
-
ニュー速VIPで使われるパスワー...
-
MSアクセスのjpgファイル表示
-
セルにフルパスを入力してPDFフ...
-
今月はご希望通りのグレードま...
-
EXCELファイルのカレントフォル...
おすすめ情報