dポイントプレゼントキャンペーン実施中!

エクセルのマクロで特定フォルダ内のJPGファイルを検索して開きたいのですが、うまくいきません。
検索して開くファイルは、アクティブセルの値で始まります。
(例えばアクティブセルが「0000」だとすると、フォルダ内にある「0000りんご.JPG」というファイルを開く。りんごの部分は特定の文字でないためワイルドカードを使用してみましたがうまくいきません)

Sub test()
Dim P As String
Dim Fname As String
Fname = ActiveCell.Value

P = "パス名\" & Fname & "*.JPG"
Shell "Rundll32.exe" & " Shimgvw.dll,ImageView_Fullscreen" & " " & P, vbNormalFocus
End Sub

どうぞよろしくお願い致します。

A 回答 (3件)

元のコードは、通るかと思いましたが、通らないようですね。



  P = "パス名\" & Fname & "*.JPG"
   ↓
  P = "パス名\"
とすれば起動するはずです。本来、フォルダに対して反応するように出来ているようです。
PathName 等をご自身のPCに合わせて書き換えてください。私は、このレベルでのミスは避けたいところですが、試してみてください。

'//
Sub OpenPictures()
 Dim BaseName As String
 Dim Fname As String
 Dim P As String
 Const CMD As String = "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen"
 Const PathName As String = "C:\My Documents\My Pictures\" '最後に\入れる
 BaseName = ActiveCell.Value
 If BaseName = "" Then Beep: Exit Sub
 Fname = PathName & BaseName & "*.jpg"
 P = Dir(Fname)
 If P <> "" Then
  Fname = PathName & P
  Shell "Rundll32.exe " & CMD & " " & Fname, vbNormalFocus
 End If
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。
見事に希望通りに動きました。

お礼日時:2010/06/09 23:08

ん?



Sub test()
Dim P As String
Dim Fname As String
Fname = ActiveCell.Value

P = dir("パス名\" & Fname & "*.JPG")
if p = "" then exit sub 'おまけ

Shell "Rundll32.exe" & " Shimgvw.dll,ImageView_Fullscreen" & " " & P, vbNormalFocus
End Sub

では。
    • good
    • 0
この回答へのお礼

ありがとうございました。
やってみましたがやはりファイルが開きませんでした。

お礼日時:2010/06/09 23:11

Dir関数を使ってまず、ファイル名を取得しないといけません。


以下は、「ActiveCell.Value & "*.JPG"」で最初に見つかった1つだけ表示するサンプルです。

Sub test()
Dim P As String
Dim Fname As String
P = "パス名\"
Fname = Dir(P & ActiveCell.Value & "*.JPG")
If Fname <> "" Then
Shell "Rundll32.exe" & " Shimgvw.dll,ImageView_Fullscreen" & " " & P, vbNormalFocus
End If
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
ファイルは開くのですが、希望と違うファイルが開いてしまいます。

お礼日時:2010/06/09 23:09

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A