
*デスクトップに「あいうえおフォルダ」という名前のフォルダがあります。
また、デスクトップに「てすとブック.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

No.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
添削ありがとう御座いました。
やりたい事が実現しました。
なお、最初にデスクトップには頭に「あいう」の付く名前のフォルダは一つしかない事を明記すべきでした。スミマセン。
No.2
- 回答日時:
こんにちは
>「あいう*」と記述してもエラーが出てしまいます。
好き勝手にワイルドカードを用いたつもりになっても、エクセルはワイルドカードとは解釈してくれません。
むしろワイルドカードを使用できるメソッドの方が限られています。
(その前に、ご提示のコードでは、文字列にもなっていないのでエラーになりますが)
ワイルドカードで検索したければ、自分で対象フォルダを探すコードを記述する必要があります。
例えば、以下。
Const fp = "C:\Users\to409\OneDrive\デスクトップ\"
fn = Dir(fp & "あいう*", 16)
If fn = "" Then MsgBox "フォルダが見つかりません": Exit Sub
fn = fp & fn & "\" & s & ".pdf"
' --- ここに保存処理
※ 考えてもいないかも知れませんけれど、(No1様の指摘にもありますが)対象フォルダが複数存在する場合までは配慮していません。
(複数ある場合にどうなるかは、ご自身で確認してください)
※ A1セルの値によってもエラーが発生する可能性はありますが、そのチェックは行っていません。
アドバイスありがとう御座いました。
最初にデスクトップには頭に「あいう」の付く名前のフォルダは一つしかない事を明記すべきでした。スミマセン。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでファイルを開くときにファイル名でワイルドカードを使用したいです
その他(プログラミング・Web制作)
-
ExcelVBAでBookを開く時にファイル名の一部だけを指定で
Access(アクセス)
-
VBAでの Replace関数で、ワイルドカードは使えないのでしょうか?
Visual Basic(VBA)
-
-
4
参照するファイルをワイルドカードで指定したい
Visual Basic(VBA)
-
5
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
6
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
9
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
10
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
11
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
12
excel VBA 部分一致の名前をパスに指定する方法
Excel(エクセル)
-
13
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
14
VBAでループ内で使う変数名を可変にできないか。
Visual Basic(VBA)
-
15
VBAで先月、先々月を求める方法
Visual Basic(VBA)
-
16
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
17
VBAで配列の計算
Excel(エクセル)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
20
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA シートをコピーする際に Co...
-
Excel マクロ ファイルと同じシ...
-
別ブックをダイアログボックス...
-
VBA コードを実行すると画面が...
-
[Excel]ADODBでNull変換されて...
-
エクセルVBAが途中で止まります
-
VBAで別のブックにシートをコピ...
-
【Excel VBA】書き込み先ブック...
-
VBで配列の差分を取りたいのですが
-
フォルダ内の全てのファイルに...
-
ユーザーフォームの切り替えに...
-
Excelマクロ 該当する値の行番...
-
新しく開いたブックをアクティ...
-
オブジェクトは、このプロパテ...
-
Excel2007VBAファイルの表示に...
-
【VBA】全シートの計算式を全て...
-
複数シート名とブック名が一致...
-
VBA 別ブックからコピペしたい...
-
マクロで最終行を取得したい
-
Book間の移動
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のエクセルファイルとシー...
-
VBA シートをコピーする際に Co...
-
別ブックをダイアログボックス...
-
VBA 別ブックからコピペしたい...
-
エクセルVBAが途中で止まります
-
ワイルドカード「*」を使うとう...
-
VBAで別のブックにシートをコピ...
-
VBA コードを実行すると画面が...
-
VBAで別ブックのシートを指定し...
-
【ExcelVBA】zip圧縮されたCSV...
-
【Excel VBA】書き込み先ブック...
-
2つ目のコンボボックスが動作...
-
[Excel]ADODBでNull変換されて...
-
Excelマクロ 該当する値の行番...
-
VBA 実行時エラー 2147024893
-
Excelのマクロコードについて教...
-
Excel にて、 リストボックスの...
-
【ExcelVBA】インデックスが有...
-
VBA アプリケーション定義また...
-
【Excel VBA】表の列の値毎に分...
おすすめ情報