[[20220902130030]] 『シートタブの色が黄色のものを一つのPDFファイルax(VBA初心者) ページの最後に飛ぶ

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

 

『シートタブの色が黄色のものを一つのPDFファイルに保存したい』(VBA初心者)

1つのExcelデータの中に複数のシートがあり、条件に一致したシートタブの色を黄色に設定するところまでVBAで実現いたしました。あとは、シートタブの色が黄色のものを全て選択し、1つのPDFファイルに保存したく、他のサイトを参考に、以下のようにシート毎にはPDFファイルで出力することはできたのですが、1つのファイルにまとめられず、躓いております。できればPDFファイルに変換時に1つのデータにしたのですが、どのようにしたら良いかご教授いただけないでしょうか。

Sub シート見出しの色で判定してPDF作成()

Dim i As Long

    'すべてのシートをループ
    For i = 1 To Sheets.Count

        'シート色で条件分岐
        If Sheets(i).Tab.Color = 65535 Then

          Sheets(i).ExportAsFixedFormat Type:=xlTypePDF, _
              FileName:=ActiveWorkbook.Path & "\" & Sheets(i).Name & ".pdf"
        End If
    Next i

End Sub

< 使用 Excel:unknown、使用 OS:unknown >


VBA 複数 シート pdf で検索し、ヒットしたトップが↓でした。

https://life-note.me/2021/06/29/1121/
(tkit) 2022/09/02(金) 13:23


tkitさん

教えていただいたサイトや、他のサイトを参照したところ下記のコードで実現できました。
ただもう一歩のところで躓いているのですが、作成したVBAコードは、Sheet1にあるボタンから動作させたいのですが、Sheet1もアクティブとなってしまい、印刷対象に含まれてしまいます。これを回避する方法はないでしょうか。よろしくお願いします。

Sub アクティブシートの黄色のシートを印刷する()

  Dim color_id As Long
  Dim sh As Object

  color_id = 6

  For Each sh In Sheets
    If sh.Tab.ColorIndex = color_id Then
      sh.Select Replace:=False
    End If
  Next sh

    ActiveSheet.ExportAsFixedFormat _
    Type:=xlTypePDF, _
    FileName:=export_FilePath

  Worksheets(1).Select 'ワークシートの複数選択を解除

End Sub

(VBA初心者) 2022/09/02(金) 13:38


先ほどのコードから自己解決いたしました。
皆様ありがとうございました。
(VBA初心者) 2022/09/02(金) 13:54

 書いてるうちに先を越されましたが、そのまま。

 解決されてよかったです。

 > Sheet1もアクティブとなってしまい、印刷対象に含まれてしまいます。
 > If sh.Tab.ColorIndex = color_id Then
 >   sh.Select Replace:=False
 > End If

 sh.Select Replace:=False となっているので、そうなりますね。
 最初に見つかる color_id のシート時、Trueにすれば、アクティブが変わります。

(tkit) 2022/09/02(金) 13:58


コメント返信:

[ 一覧(最新更新順) ]


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