私は、ファイルパス(ブックが保存された場所)、targetpath(pdfが保存される場所)、タブ名の文字列(パイプ(|)で区切られています)。VBAワークシート参照チャートシート
この機能のユーザーは、タブ名の文字列を入力する必要はありません(オプションです)。そうでない場合は、表示されているすべてのタブを選択して印刷します。 2があります
For Each WSO.Name In WBO.Worksheets
strSheets = strSheets & WSO.Name & "|"
Next WSO
strSheets = Left(strSheets, Len(strSheets) - 1)
arraySheets() = Split(strSheets, "|")
WBO.Sheets(arraySheets()).Select
WBO.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
strFilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
:
コード「| | Chart2 ....グラフ1」ユーザーが別のワークシートにある50枚のチャートを持っているなどの文字列を記述したくない場合、これがケースになりますFor Eachループの問題:「Chart1」などのシートを取得しないため、「Sheet1」などのシートのみを取得します。また、隠しシートをつかむので、それらをすべて選択しようとすると、範囲外のエラーが発生します。
チャートシートが通常のシートと違って参照されているのか、隠れシートが選択されているのかはわかりませんでした。
、 'ActiveWorkbook.Sheets'は' ActiveWorkbook.Worksheets'と 'ActiveWorkbook.Charts'の両方を含んでいます。 –