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

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

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

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

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

Q&A

解決済

2回答

10056閲覧

wordファイルをPDF化しパスワードをかけたい

manataku

総合スコア45

VBA

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

Word

Microsoft WordはMicrosoftが開発した業務用の文書生成用のソフトウェアです。

VBScript

VBScript(Visual Basic Scripting Edition)はMicrosftが開発したスクリプト言語であり、Visual Basicのサブセットです。

0グッド

0クリップ

投稿2017/12/05 08:55

フォルダの中にwordファイルが複数あります。
このファイルをPDF化しパスワードをかけて保存するvbsを作成したいのですが、
パスワードをかける処理が分からずアドバイス頂けないでしょうか。

ファイル名の一部をパスワードとして使用します。
フォルダ名:wordtoPDF
ファイル名:[日本語][パスワード].pdf

参考にしたサイト
https://digitanu.com/71

savas実行時にファイル名の一部をパスワードとして指定できるようにしたいのですが、
調べる限りここでパスワードを付けて保存はできないことまでは分かりましたが、
他に方法がないか探しております。

Dim FS, objWord, objDoc, objArgs, FileName, FolderName '実行時の引数を取得 Set objArgs = WScript.Arguments If objArgs.Count=0 Then MsgBox "Wordファイルをドラッグしてください。" WScript.Quit End If Set FS = CreateObject("Scripting.FileSystemObject") Set objWord = CreateObject("Word.Application") objWord.Visible = false j = 0 For Each FileName In objArgs FolderName = FS.GetParentFolderName(FileName) Select Case LCase(FS.GetExtensionName(FileName)) '拡張子がdoc, docxの時だけ処理 Case "doc","docx" Set objDoc = objWord.Documents.Open (FileName) '名前をつけて保存(PDFに) objDoc.SaveAs FS.BuildPath(FolderName, FS.GetBaseName(FileName) & ".pdf"), 17 objDoc.Close False j = j + 1 End Select Next objWord.Quit Set FS = Nothing Set objDoc = nothing Set objWord = nothing MsgBox j & "個のファイルを変換しました"

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

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

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

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

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

guest

回答2

0

Call objDoc.Protect([保護タイプ],,[パスワード])

保護タイプ:
0:wdAllowOnlyRevisions
1:wdAllowOnlyComments
2:wdAllowOnlyFormFields
3:wdAllowOnlyReading
-1:wdNoProtection
詳細は、↓を参照ください
https://msdn.microsoft.com/ja-jp/library/microsoft.office.interop.word.wdprotectiontype(v=office.11).aspx

投稿2017/12/06 00:16

ExcelVBAer

総合スコア1175

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

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

manataku

2017/12/06 01:26

ExcelVBAerさん 回答ありがとうございます。 Call objDoc.Protect([保護タイプ],,[パスワード])について、 下記のように追加してみましたが、パスワードが設定できませんでした。 何をcallしているかも分かっておりませんが、使い方としてはコード内に挿入するで良かったでしょうか。。 せっかく回答頂いたのに申しわけありませんが、詳細を読み解き使えるレベルになく、 使い方についてアドバイス頂けないでしょうか。 --- Set objDoc = objWord.Documents.Open (FileName) Call objDoc.Protect(3,,"pass") objDoc.SaveAs FS.BuildPath(FolderName, FS.GetBaseName(FileName) & ".pdf"), 17 objDoc.Close False ---
ExcelVBAer

2017/12/06 05:42 編集

流し読みしてて、文書の保護と間違えてました。 すみません。。。 PDFのパスワードはVBAからは指定できないようです。 ダイアログだと「ドキュメントをパスワードで暗号化する」で設定できるのに、マクロから設定できないとは。。。
manataku

2017/12/07 04:08

ExcelVBAer さん ご確認ありがとうございました。 >PDFのパスワードはVBAからは指定できないようです。 ダイレクトにwordからPDF変換時にパスワードをかけることは難しいようなので、 作成されたPDFファイルを圧縮しパスワードをつけることはvbaからも可能でしょうか。 windows7を使用しており、Lhaplusを入れております。
guest

0

自己解決

vbs+vbaにて実現できました。

投稿2017/12/12 23:44

manataku

総合スコア45

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問