プロが教える店舗&オフィスのセキュリティ対策術

*デスクトップに「あいうえおフォルダ」という名前のフォルダがあります。
また、デスクトップに「てすとブック.xlsm」というブックがあり、中に「てすとシート」というワークシートがあります。
【質問】「てすとシート」をpdfに変換して「あいうえおフォルダ」に置きたいのですが、その際、マクロで・・・「あいう」が付くフォルダ・・・と指定したいのですが、「あいう*」と記述してもエラーが出てしまいます。正しい記述を教えて下さい。

Private Sub CommandButton1_Click()

Workbooks.Open "C:\Users\〇●〇●\OneDrive\デスクトップ\てすとブック.xlsm"

Workbooks("てすとブック.xlsm").Worksheets("てすとシート").Activate

Dim s As String
s = Workbooks("てすとブック.xlsm").Worksheets("てすとシート").Range("A1")

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
C:\Users\to409\OneDrive\デスクトップ\あいう*\ & s & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

End Sub

A 回答 (3件)

Option Explicit


Private Sub CommandButton1_Click()
    Dim DeskTop As String, Book As Workbook, File As String, Folder As String
    DeskTop = CreateObject("WScript.Shell").SpecialFolders("DeskTop")
    Set Book = Workbooks.Open(DeskTop & "\てすとブック.xlsm")
    File = Book.Worksheets("てすとシート").Range("A1")
    Folder = Dir(DeskTop & "\あいう*", vbDirectory)
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
            DeskTop & "\" & Folder & "\" & File & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
    • good
    • 0
この回答へのお礼

添削ありがとう御座いました。
やりたい事が実現しました。
なお、最初にデスクトップには頭に「あいう」の付く名前のフォルダは一つしかない事を明記すべきでした。スミマセン。

お礼日時:2022/03/26 12:38

こんにちは



>「あいう*」と記述してもエラーが出てしまいます。
好き勝手にワイルドカードを用いたつもりになっても、エクセルはワイルドカードとは解釈してくれません。
むしろワイルドカードを使用できるメソッドの方が限られています。
(その前に、ご提示のコードでは、文字列にもなっていないのでエラーになりますが)

ワイルドカードで検索したければ、自分で対象フォルダを探すコードを記述する必要があります。
例えば、以下。

Const fp = "C:\Users\to409\OneDrive\デスクトップ\"
fn = Dir(fp & "あいう*", 16)
If fn = "" Then MsgBox "フォルダが見つかりません": Exit Sub
fn = fp & fn & "\" & s & ".pdf"

' --- ここに保存処理


※ 考えてもいないかも知れませんけれど、(No1様の指摘にもありますが)対象フォルダが複数存在する場合までは配慮していません。
(複数ある場合にどうなるかは、ご自身で確認してください)
※ A1セルの値によってもエラーが発生する可能性はありますが、そのチェックは行っていません。
    • good
    • 0
この回答へのお礼

アドバイスありがとう御座いました。
最初にデスクトップには頭に「あいう」の付く名前のフォルダは一つしかない事を明記すべきでした。スミマセン。

お礼日時:2022/03/26 12:37

フルパスを正しく指定してください。


あいうで始まるフォルダが複数あったらどうなるのが正解なのか。
勝手に都合よく、見つかった複数フォルダ分、変換やコピーがされないのはわかりますよね?
    • good
    • 0
この回答へのお礼

アドバイスありがとう御座いました。
最初にデスクトップには頭に「あいう」の付く名前のフォルダは一つしかない事を明記すべきでした。スミマセン。

お礼日時:2022/03/26 12:37

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

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


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