こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelマクロでPDFを選んで開く

ネット上で色々検索しましたがこれという例題が見つかりませんでしたので教えて頂きたいです。
サーバー上の共有フォルダー例えば \\AA01\BB02\cc01\PDFFILES にPDFファイルが数種類保存されているとします。フォルダーの中からABCの文字が含まれるファイルをファイル選択ダイアログなどで表示し、その中から選んでPDFファイルを開きたいのですが。
よろしくお願いします。

投稿日時 - 2018-11-07 12:00:40

QNo.9555422

困ってます

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

Sub Sample()
 'ファイルを選択するダイアログボックス格納変数を宣言
 Dim FD As FileDialog 
 
 'いつも見慣れたダイアログボックスを↑の変数に格納する
 Set FD = Application.FileDialog(msoFileDialogOpen)
  
  With FD '以下、↑の変数について

  '初期に開くフォルダーと表示するファイル名(の一部)を与え
  .InitialFileName = "\\AA01\BB02\cc01\PDFFILES\*ABC*"

   'ダイアログを開き
   'OKボタンをクック、あるいは、
    '選択されたファイル名の行をダブルクリックしたら 
   If .Show = True Then

   'AplDataOpenというサブルーチンを呼び出す
   'その呼び出すサブルーチンに、
   '選択したファイルのフルパスを与える
   'もし複数選択したら2つ目以降を無視して、1つ目を与える。
   AplDataOpen .SelectedItems(1)

   ’これは単なるコメント
   '.Execute
  
   ’キャンセルボタンが押されたら
   Else
    ’メッセージを表示する
    MsgBox "キャンセルされました"
  End If
 End With
End Sub


'引数に当たられたファイルを開くサブルーチン
'これから新たにマクロを作成したときにも使えるように
'今回は、サブルーチンにしました。
'かっこよく言えば、部品化です。

'やっていることは
'エクスプローラ上でPDFファイルなどをダブルクリックするのと
'同じ動作です。

'あるいは
'ファイル名を指定して実行を選び
'C:\Data\ほげほげ.pdf   
'といったコマンドを実行するのと同じ動作です。

Sub AplDataOpen(MyPath As String)
 With CreateObject("Shell.Application")
  .ShellExecute MyPath
 End With
End Sub

投稿日時 - 2018-11-07 14:36:53

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

こんなコードはいかがでしょうあ。

Sub Sample()
 Dim FD As FileDialog
 Set FD = Application.FileDialog(msoFileDialogOpen)
  
  With FD
  .InitialFileName = "\\AA01\BB02\cc01\PDFFILES\*ABC*"

   If .Show = True Then
   AplDataOpen .SelectedItems(1)
   '.Execute
  Else
    MsgBox "キャンセルされました"
  End If
 End With
End Sub

Sub AplDataOpen(MyPath As String)
 With CreateObject("Shell.Application")
  .ShellExecute MyPath
 End With
End Sub

投稿日時 - 2018-11-07 12:38:17

お礼

回答有難う御座います。
希望通りに出来ました‼。
欲を言えば初心者の私に解説など付け加えて頂ければ今後のマクロ作成に役立つと思いますので宜しくお願いします。

投稿日時 - 2018-11-07 14:00:58

あなたにオススメの質問