[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでワード文書をPDF化したい』(雪だるま)
VBAでWord書をPDFに変換して保存したいと思います。
保存されているWord文書はカラー文字が含まれているので、黒字に修正してPDFにしたいと思っていますが、どのようにすればいいかお知恵を貸していただけないでしょうか。
単にWord文書を開いてその色のままPDFにすることはできます。
Private Sub Conv_PDF(ByVal Path As String, ByVal Fn As String)
Dim FilePath As String Dim objOffice As Object FilePath = Path & "\PDF" & Left$(Fn, InStrRev(Fn, ".")) & "pdf" Path = Path & Fn ' 'ファイル名から拡張子取得 Select Case Get_Extension(Fn) '' 'Excel97-2003,Excel2007以降 Case "xls", "xlsx", "xlsm" Set objOffice = Excel.Application With objOffice.Workbooks.Open(Path) .ExportAsFixedFormat Type:=xlTypePDF, _ FileName:=FilePath, OpenAfterPublish:=False .Close End With ' 'Word97-2003,Word2007以降 以下の部分 Case "doc", "docx" Set objOffice = CreateObject("Word.Application") objOffice.Visible = True With objOffice.Documents.Open(Path) ' Call AppActivate(.Windows(1).Caption & " - Word") Application.Wait Now() + TimeValue("00:00:01") .ExportAsFixedFormat OutputFileName:=FilePath, _ ExportFormat:=17 .Close End With objOffice.Quit ' 'PowerPoint97-2003,PowerPoint2007以降 Case "ppt", "pptx" Set objOffice = CreateObject("PowerPoint.Application") With objOffice.Presentations.Open(Path) .SaveAs FileName:=FilePath, FileFormat:=32 .Close End With objOffice.Quit End Select End Sub
< 使用 Excel:Excel2019、使用 OS:Windows11 >
Sub a() ActiveDocument.Range.Font.ColorIndex = wdBlack End Sub
だけど、これワードのマクロね。
(ゆたか) 2024/12/13(金) 12:54:14
ありがとうございます。
やはりエクセルのVBAに組み込むと、「変数が定義されていません。」というメッセージが出ます。
(雪だるま) 2024/12/13(金) 13:34:25
こんな感じでどうですか?
Private Sub Conv_PDF(ByVal Path As String, ByVal Fn As String)
Dim FilePath As String Dim objOffice As Object FilePath = Path & "\PDF" & Left$(Fn, InStrRev(Fn, ".")) & "pdf" Path = Path & Fn ' 'ファイル名から拡張子取得 Select Case Get_Extension(Fn) '' 'Excel97-2003,Excel2007以降 Case "xls", "xlsx", "xlsm" Set objOffice = Excel.Application With objOffice.Workbooks.Open(Path) .ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=FilePath, OpenAfterPublish:=False .Close End With ' 'Word97-2003,Word2007以降 以下の部分 Case "doc", "docx" Set objOffice = CreateObject("Word.Application") objOffice.Visible = True With objOffice.Documents.Open(Path) ' Call AppActivate(.Windows(1).Caption & " - Word") .Range.Font.Color = vbBlack '←ここ追加した。 Application.Wait Now() + TimeValue("00:00:01") .ExportAsFixedFormat OutputFileName:=FilePath, _ ExportFormat:=17 .Close End With objOffice.Quit ' 'PowerPoint97-2003,PowerPoint2007以降 Case "ppt", "pptx" Set objOffice = CreateObject("PowerPoint.Application") With objOffice.Presentations.Open(Path) .SaveAs Filename:=FilePath, FileFormat:=32 .Close End With objOffice.Quit End Select End Sub
(通りすがり助六) 2024/12/13(金) 15:59:55
うまくいきました。ありがとうございました。非常に助かりました。
(雪だるま) 2024/12/14(土) 11:40:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.