[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シートタブの色が黄色のものを一つの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 >
https://life-note.me/2021/06/29/1121/
(tkit) 2022/09/02(金) 13:23
教えていただいたサイトや、他のサイトを参照したところ下記のコードで実現できました。
ただもう一歩のところで躓いているのですが、作成した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
書いてるうちに先を越されましたが、そのまま。
解決されてよかったです。
> 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.