[[20190717150920]] 『シートを指定してPDFに出力』(チャロ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『シートを指定してPDFに出力』(チャロ)

お世話になります。
VBAで特定のシートだけをPDF出力するマクロにチャレンジしていますが
うまくいきません。

まず、ファイルは1つとなり、
「名前」シートには以下のように名前がリストになっています。
Aさん
Dさん
Jさん

そのほかのシートはPDFで出力したいデータが載ったシートとなり、
シート名は名前となっています。

今回名前のリストとシート名が合致したシートのみPDF出力したいのですが、
うまく指定できず、泣く泣く全てのシートをPDF出力して余計なものを削除しております。

どうかお力を貸していただければと思います。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


名前のリストは何というシートのどのセルに入力されていますか?

(渡辺ひかる) 2019/07/17(水) 15:57


 名前シートのA1セルから下にリストになっているものとする。
 また、ファイルはCドライブのWKフォルダに作成する。

(ねむねむ) 2019/07/17(水) 15:58


 Sub tst()
    Dim WK_RANGE    As Range
    Dim FILE_NAME   As String
    Set WK_RANGE = Worksheets("名前").Range("A1")
    On Error Resume Next
    Do Until WK_RANGE.Value = ""
        FILE_NAME = WK_RANGE.Value

        Worksheets(FILE_NAME).ExportAsFixedFormat Type:=xlTypePDF, _
                 Filename:="C:\WK\" & FILE_NAME & ".pdf", _
                 Quality:=xlQualityStandard, IncludeDocProperties:=True, _
                 IgnorePrintAreas:=False, OpenAfterPublish:=False
        Set WK_RANGE = WK_RANGE.Offset(1, 0)
    Loop
    On Error GoTo 0
 End Sub
(ねむねむ) 2019/07/17(水) 15:58

複数シートをまとめて一つのPDFにするのはこんな感じでしょうか?

Sub Macro1()

    Dim myShtAr As Variant
    Dim myData As Variant

    myData = ThisWorkbook.Worksheets("名前").Range("A1").CurrentRegion.Value
    myShtAr = WorksheetFunction.Transpose(myData)

    ThisWorkbook.Sheets(myShtAr).Select
    ActiveSheet.ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:="目的に合わせて変更.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

    ThisWorkbook.Worksheets("名前").Select

End Sub

(渡辺ひかる) 2019/07/17(水) 16:30


ねむねむさん
ありがとうございます。
思った通りの動きができました
大変助かりました、ありがとうございます。

渡辺ひかるさん
質問の内容がわかりずらく失礼いたしました。
指定のシートのみと言う動きに関しては、いただいたコードも参考にさせていただきたいと思います。
まとめて1つのPDFへ出力する形も今後考えておりましたので助かりました!
ありがとうございます。
(チャロ) 2019/07/17(水) 17:55


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.