この度、Excel2019に変わったのですが下記のコードが使えなくなりました。
拾ってきたコードなので、VBAに関しては初心者です。
こちらのコートが2019版のExcelには利用できないのでしょうか?
ちなみに、PDF化したいExcelの拡張子はxlsmなので、
ExFileName = Dir(ExcelFilePath & ".xls?")
を下記に変更してみました。
ExFileName = Dir(ExcelFilePath & ".xlsm?")
VBA実行後に、「PDFファイルに一括変換しました」というポップアップは表示されるのですが、PDFは作られておりません。
Sub
1 2 Dim Button, T, I, L As Integer 3 Dim OpenExcelFileName, ExcelFileName, ExcelFilePath, ExFileName As String 4 5 Application.DisplayAlerts = False '確認メッセージを無効化します。 6 7 8 Button = MsgBox("EXCEファイルの一括PDF変を行いますか?", vbYesNo + vbQuestion, "確認") 9 If Button = vbYes Then 10 11 OpenExcelFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") 'ダイアログを表示取り込むフォルダーにあるファイルを選択します。 12 13 If OpenExcelFileName <> "False" Then 14 ExcelFileName = Dir(OpenExcelFileName) '指定したファイルパスからファイル名を代入します。 15 ExcelFilePath = Replace(OpenExcelFileName, ExcelFileName, "") '指定したファイルパスを指定します。(ファイルパスからファイル名を取り除く) 16 17 MsgBox ExcelFilePath & "この選択フォルダからPDFに変換します。" 18 Else 19 MsgBox "キャンセルされました" 20 Exit Sub 'キャンセルでプログラムを終了します。 21 22 End If 23 24 ExFileName = Dir(ExcelFilePath & "*.xls?") '指定したフォルダーから一件目のEXCELファイルを指定します。 25 26 27 Do While ExFileName <> "" '読み込むファイルがなくなるまで繰り返す。 28 29 30 Workbooks.Open FileName:=ExcelFilePath & ExFileName, ReadOnly:=True, UpdateLinks:=0 'EXCELファイルを読み取り専用で読み込む 31 ExFileName = Left(ExFileName, InStr(ExFileName, ".") - 1) ' ファイル名から拡張子を取り除く(.xls?) 32 ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, FileName:=ExcelFilePath & ExFileName '選択したシートをPDF出力 33 34 ActiveWindow.Close '読み込んだファイルを閉じます。 35 36 ExFileName = Dir() '次のファイルを指定する。 37 38 Loop 39 40 MsgBox "PDFファイルに一括変換しました。" 41 Else 42 MsgBox "処理を中断します" 43 End If 44 45 Application.DisplayAlerts = True '確認メッセージを有効化します。 46 47End Sub 48コード
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。