[[20201006153116]] 『【VBA】Wordファイル⇒PDFファイル変換時の文字化』(プログラマン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『【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:06

 >文字化けの箇所が、置換後の文字列ではございません。。
 では、もともと文字化けしているのですね?
(´・ω・`) 2020/10/07(水) 00:22

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.