フォルダ内のエクセルファイルを自動でPDF一括出力するマクロを作成したのですが
初めてPDF化するフォルダのファイルを選択した際に「ファイルアクセスを許可」の後にファイル一つ一つにアクセス権を付与を選ばないとPDF出力されないです。
一度PDF出力してしまえば次からは自動で一括出力できるのですが初めて選ぶファイルだとアクセス権を付与を毎回クリックもしくはエンターで対応しないといけないので完璧に自動化されてるとは言えない感じでモヤモヤしております。
そこで初めてPDF出力するファイルのアクセス権の付与をスキップする方法等あるのかどうかが知りたいです。
中々良い記事に巡り合えず検索の方法も未熟で大変恐縮なのですがご教授頂けると幸いです。
宜しくお願い致します。
以下作成したマクロ
VBA
1 2Sub EXCELファイルPDF化03() 'フォルダのEXCELファイルの一括変換 3 4 Dim Button, T, I, L As Integer 5 Dim OpenExcelFileName, ExcelFileName, ExcelFilePath, ExFileName As String 6 7 Application.DisplayAlerts = False '確認メッセージを無効化します。 8 9 10 Button = MsgBox("EXCEファイルの一括PDF変を行いますか?", vbYesNo + vbQuestion, "確認") 11 If Button = vbYes Then 12 13 OpenExcelFileName = Application.GetOpenFilename 'ダイアログを表示取り込むフォルダーにあるファイルを選択します。 14 15 If OpenExcelFileName <> "False" Then 16 ExcelFileName = Dir(OpenExcelFileName) '指定したファイルパスからファイル名を代入します。 17 ExcelFilePath = Replace(OpenExcelFileName, ExcelFileName, "") '指定したファイルパスを指定します。(ファイルパスからファイル名を取り除く) 18 19 MsgBox ExcelFilePath & "この選択フォルダからPDFに変換します。" 20 Else 21 MsgBox "キャンセルされました" 22 Exit Sub 'キャンセルでプログラムを終了します。 23 24 End If 25 26 ExFileName = Dir(ExcelFilePath & "*.xls?") '指定したフォルダーから一件目のEXCELファイルを指定します。 27 28 29 Do While ExFileName <> "" '読み込むファイルがなくなるまで繰り返す。 30 31 Workbooks.Open fileName:=ExcelFilePath & ExFileName, ReadOnly:=True, UpdateLinks:=0 'EXCELファイルを読み取り専用で読み込む 32 ExFileName = Left(ExFileName, InStr(ExFileName, ".") - 1) ' ファイル名から拡張子を取り除く(.xls?) 33 34 With ActiveSheet.PageSetup 35 .Zoom = False 36 .FitToPagesWide = 1 37 .FitToPagesTall = 1 38 End With 39 40 'ActiveWorkbook の記述はいらなかった 41 'レポートの記述にいらないスペースがあったかも 42 Dim ws As Worksheet 43 44 On Error Resume Next 'エラー無視 45 Set ws = Worksheets("レポート") 46 47 If ws <> "" Then '"レポート"シートが存在しなければ、 48 Worksheets(Array("表紙", "検索", "表示箇所", "行動", "順位")).Select 49 ActiveSheet.ExportAsFixedFormat _ 50 Type:=xlTypePDF, _ 51 fileName:=ExcelFilePath & ExFileName, _ 52 OpenAfterPublish:=True 53 Else 54 ws.ExportAsFixedFormat _ 55 Type:=xlTypePDF, _ 56 fileName:=ExcelFilePath & ExFileName, _ 57 OpenAfterPublish:=True 58 End If 59 60 61 ActiveWindow.Close '読み込んだファイルを閉じます。 62 63 ExFileName = Dir() '次のファイルを指定する。 64 65 Loop 66 67 MsgBox "PDFファイルに一括変換しました。" 68 Else 69 MsgBox "処理を中断します" 70 End If 71 72 Application.DisplayAlerts = True '確認メッセージを有効化します。 73 74End Sub
OS:macOS Catalina バージョン10.15.3
Excelバージョン: Microsoft Excel for Mac バージョン16.39
参考にした記事追記:https://the-forme.net/note/spreadsheet/vbamac16/
追記:上記の記事を参考にActiveSheet.ExportAsFixedFormat _の部分を
ThisWorkbook.ActiveSheet.ExportAsFixedFormat _
と書き換えてみたのですが、アクセス権限の付与を回避できません。
記述場所、文法等が間違っているのでしょうか?
あなたの回答
tips
プレビュー