[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『【VBA】Wordファイル⇒PDFファイル変換時の文字化け』(プログラマン)
はじめまして、VBADでひとつ質問です。
Wordファイルを開き、文字を変換してPDF形式で保存するというコードを書いていますが、開いたワードファイルおよび保存後のpdfファイルがすべて文字化けしてしまいます。恐れ入りますが、こちらの原因と解決策をご教示願います。
Sub test2()
Dim wdObj As Object Dim wdDoc As Object Dim objSelect As Object Dim xResult As Boolean
Set wdObj = CreateObject("Word.Application") wdObj.Visible = True
Set wdDoc = wdObj.Documents.Open(Range("S1") + Range("T9")) ”ワードファイルを指定のファイルパスから開く” Set objSelect = wdObj.Selection
objSelect.Find.ClearFormatting objSelect.Find.Replacement.ClearFormatting
With objSelect.Find .Text = "変換する文字" .Replacement.Text = Format(35000, Range("B6")) ”B6の文字に変換する” .Forward = True .MatchFuzzy = True .MatchWholeWord = False .MatchCase = True .MatchWildcards = False .Forward = True .Wrap = 1 'wdFindContinue .Format = False .Execute , , , , , , , , , , 2 'wdReplaceAll End With '--- 保存先の設定 ---' Dim saveFileDir As String '保存先のフォルダ Dim saveFileName As String '保存ファイル名(拡張子なし) Dim saveFilePath As String saveFileDir = Range("S1") saveFileName = Range("V9") saveFilePath = saveFileDir & saveFileName & ".pdf" ”指定の名前で指定のフォルダにする”
'--- PDFとして保存する ---' Call wdDoc.ExportAsFixedFormat(OutputFileName:=saveFilePath, ExportFormat:=wdExportFormatPDF)
'--- ドキュメントを閉じる ---' wdObj.Documents.Close savechanges:=True wdObj.Quit
End Sub
< 使用 Excel:unknown、使用 OS:unknown >
>Call wdDoc.ExportAsFixedFormat(OutputFileName:=saveFilePath, ExportFormat:=wdExportFormatPDF) の部分の wdExportFormatPDF を 17 にするとどうなるだろうか? (ねむねむ) 2020/10/06(火) 15:46
objSelect.Find ではワード定数を実数に置き換えているが見落としだろうか? (ねむねむ) 2020/10/06(火) 15:47
>Call wdDoc.ExportAsFixedFormat(OutputFileName:=saveFilePath, ExportFormat:=wdExportFormatPDF) の部分の wdExportFormatPDF を 17 にするとどうなるだろうか? ⇒17に変換して再実行したところですが、変化はございませんでした。
>objSelect.Find ではワード定数を実数に置き換えているが見落としだろうか? ⇒こちらどの部分を見落としてどのように修正すればわからないところです・・・ (やりたい処理としては、指定の文字を指定の文字に変換するといったところです。) (プログラマン) 2020/10/06(火) 15:56
ダメでしたか。 >>objSelect.Find >ではワード定数を実数に置き換えているが見落としだろうか? これは他の箇所では >.Execute , , , , , , , , , , 2 'wdReplaceAll のようにワード定数を実数に置き換えているのに(この場合はwdReplaceAllを2に)wdExportFormatPDFは置き換えていないので 見落としたのかと思ったので。 (ねむねむ) 2020/10/06(火) 16:00
>>objSelect.Find >ではワード定数を実数に置き換えているが見落としだろうか? これは他の箇所では >.Execute , , , , , , , , , , 2 'wdReplaceAll のようにワード定数を実数に置き換えているのに(この場合はwdReplaceAllを2に)wdExportFormatPDFは置き換えていないので 見落としたのかと思ったので。 (ねむねむ)
ありがとうございます。置き換える必要はないかと思ったところですが、こちら置き換えるとどのようなコードになりますでしょうか・・・
(プログラマン) 2020/10/06(火) 16:17
本題と関係ないかもしれませんが、 Format(35000, Range("B6")) は何を期待しての処理でしょうか。 (QS) 2020/10/06(火) 16:49
本題と関係ないかもしれませんが、 Format(35000, Range("B6")) は何を期待しての処理でしょうか。 (QS) 2020/10/06(火) 16:49
⇒こちらについてはとりわけ意味はございません。ただ、こちらを省略した形で実行しても変化はなかったので課題の原因とは本質的に関係ないと思われます。
(プログラマン) 2020/10/06(火) 16:59
(マナ) 2020/10/06(火) 18:31
文字化けの箇所が、置換後の文字列なら、これが原因だと思います。
原因ではなかったとしても、このままでよいはずがない。
(マナ) 2020/10/06(火) 20:25
>文字化けの箇所が、置換後の文字列ではございません。。 では、もともと文字化けしているのですね? (´・ω・`) 2020/10/07(水) 00:22
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.