• ベストアンサー

excelVBAであるセルの文字を含むファイルを選択画面に表示させる方法

excle2003のVBAで、 A2のセルに記載されている文字が含まれるPDFをファイルの選択画面に出す方法はあるのでしょうか? たとえば、あるフォルダにABCD.PDFとABDF.PDF、CCDF.PDF、DDDF.PDFの三つがあった場合に、A2のセルに、"AB"の文字が記載されていたら、そのフォルダ内からABCD.PDFとABDF.PDFの2つだけをファイルを開くの項目に表示され、ファイルを選択できて開くことができるようなVBAを作りたいのです。 宜しくお願いします。

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

  • ベストアンサー
  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.1

以下のコードで「ファイルを開く」のウインドウがでて  "AB*.pdf" の中から選択できるようになります。(A2="AB"のとき) 選択したファイルのパスがfnameに入ります。  Debug.Print で確認 後はopenですが、本当にExcelのVBAからPDFをopenするの? Sub ss()   Dim FLDname As String   Dim fname As String   FLDname = "c:\sss\" & Range("A2") & "*.pdf"   fname = ""   With Application.FileDialog(msoFileDialogFilePicker)     .InitialFileName = FLDname     .AllowMultiSelect = False     If .Show = True Then         fname = .SelectedItems(1)     End If   End With   Debug.Print fname End Sub

o8ji
質問者

お礼

サンプルを記載していただきありがとうございました。 大変参考になりました。

o8ji
質問者

補足

ご連絡が遅れてすいません。回答ありがとうございます。 実際にやりたいことは、ExcelのVBAからEXCELでPDFをopenするのではなく、別アプリ(そのPCにインストールされているAcrobat等)でPDFファイルをでOPENできれば、理想なのですが。

その他の回答 (2)

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.3

#2さんへの回答 複数表示は可能です。 ついでに複数選択も可能です。 .AllowMultiSelect = False をtrueにすれば可能です。 .SelectedItems.Countでいくつ選択されたか捕まえて .SelectedItems(i)を配列で受けます この場合文章から表示は複数で選択するのは一つだけと判断しこのようなコードにしました。

o8ji
質問者

お礼

大変参考になりました。ありがとうございました

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

(1)>あるフォルダ このフォルダの全てのファイルのフォルダ名を捕まえる。 このコードはWEBに沢山例がある。 例 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_080.html DIR関数を使う方法と FSOを使う方法 (2)そのファイル名でAB(<=A2セルから。含むか先頭かでコードが変わる。質問に明記のこと)が含まれているか判定 (3)含まれておれば、ListBoxのアイテムに入れて、全部ABつき(含む)の候補が出揃ったら、ListBoxで1つ択んでもらう。 先頭にABはLeft関数、AB含むはInstr関数で判定できる。 (4)選択されたら、フォルダ+選択されたファイル名で開く。 複数選択は不可にしておく。 ーーー 私が間違っているかもしれないが、拡張子を限定は出来ても、1つだけは可能でも、候補ファイルの名前で2つ、3つ・・だけを、ファイルダイアログでは表示できないのでは。

o8ji
質問者

お礼

とても参考になりました。ありがとうございました。

関連するQ&A