『シートタブの色が黄色のものを一つの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