PDF(画像ではありません)から一連の.doc文書を取得するためにVBAコーディングを使用しようとしています。さまざまなPDFファイルをループしてMS Word形式で保存しようとしています。私の経験では、私が持っているPDF文書は、その単語がかなりうまく読めるということです。単語は、ほとんどの場合、PDFファイルの正しいレイアウトを維持しています。私はこれが正しい選択であるかどうかわからないので、可能ならばRを使って代替案を尋ねる。とにかくPDFファイルをループして単語で文書に変換する
は、ここでそれは私がhereを見つけたコードです:開発者のウィンドウに貼り付けた後
Sub convertToWord()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir("C:\Users\username\work_dir_example" & "*.pdf") 'pdf path
Do While (file <> "")
ChangeFileOpenDirectory "C:\Users\username\work_dir_example"
Documents.Open Filename:=file, ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
ChangeFileOpenDirectory "C:\Users\username\work_dir_example"
ActiveDocument.SaveAs2 Filename:=Replace(file, ".pdf", ".docx"), FileFormat:=wdFormatXMLDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=15
ActiveDocument.Close
file = Dir
Loop
End Sub
、私はモジュール内のコードを保存する - >私は、開発者のウィンドウを閉じる - >私は上をクリック"マクロ"ボタン→ "convertToWord"マクロを実行します。ポップアップボックスに「SubまたはFunction not defined」というエラーが表示されます。これをどうやって解決するのですか?また、以前は何らかの理由で今私には分かりませんが、関数ChangeFileOpenDirectory
に関連するエラーがありましたが、これも定義されていないようです。
更新27/08/2017
私を次のようにコードを変更:
Sub convertToWord()
Dim MyObj As Object, MySource As Object, file As Variant
file = Dir("C:\Users\username\work_dir_example" & "*.pdf")
ChDir "C:\Users\username\work_dir_example"
Do While (file <> "")
Documents.Open Filename:=file, ConfirmConversions:=False, ReadOnly:= _
False, AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:= _
"", Revert:=False, WritePasswordDocument:="", WritePasswordTemplate:="", _
Format:=wdOpenFormatAuto, XMLTransform:=""
ActiveDocument.SaveAs2 Filename:=Replace(file, ".pdf", ".docx"), FileFormat:=wdFormatXMLDocument _
, LockComments:=False, Password:="", AddToRecentFiles:=True, _
WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts:=False, _
SaveNativePictureFormat:=False, SaveFormsData:=False, SaveAsAOCELetter:= _
False, CompatibilityMode:=15
ActiveDocument.Close
file = Dir
Loop
End Sub
今、私はポップアップボックス内のすべてのエラーメッセージを得ることはありませんが、何も出力はありません私の作業ディレクトリにあります。今は何が間違っているのでしょうか?
(a)は、 'ディレクトリ( "C:\ Users \ユーザー... T" & "* .PDF") 'あなたのディレクトリが' t'で終わることを暗示していますか?もしそうなら、 'Dir(" C:\ Users \ ... t \ "&" * .pdf ")'(または、 ... t \ *。pdf ")')。 (b) 'ChangeFileOpenDirectory'がなぜ失敗するのか分かりません。あなたが指定したディレクトリが存在しなかったか、またはあなたがそれにアクセスできなかったのでしょうか? – YowE3K
2つの 'ChangeFileOpenDirectory ...'行だけを削除してください。フルパスでファイルを開いて保存する – jsotola
私はいくつかの提案を試みました。私は質問を更新します。 –