質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

0回答

1702閲覧

VBA PDF出力の際アクセス権の付与をスキップしたい

taka-hoop

総合スコア14

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/08/03 08:52

編集2020/08/04 01:58

フォルダ内のエクセルファイルを自動で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 _
と書き換えてみたのですが、アクセス権限の付与を回避できません。
記述場所、文法等が間違っているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問