• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelVBA+xdoc2txtでデスクトップのファイルをコンバートしたい。)

ExcelVBA+xdoc2txtでデスクトップのファイルをコンバートする方法

このQ&Aのポイント
  • ExcelVBAとxdoc2txtを使用して、デスクトップのファイルをPDFからtxtに変換する方法について説明します。
  • xdoc2txt.exeとpdfファイルがデスクトップに存在する場合に問題が発生する可能性があります。
  • ファイル名にスペースが含まれる場合、ダブルコーテーションで囲む必要があるかもしれませんが、それでも動作しない場合があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 "C:\Documents and Settings\hogehoge\デスクトップ\xdoc2txt\xdoc2txt.exe" -f "C:\Documents and Settings\hogehoge\デスクトップ\PDF\xxx.pdf" EXE のパスと変換対象のファイルのパスともにダブルクォーテーション(WQ) で括ります。   "EXEのパス" -f "変換対象ファイルのパス" コマンドラインは 半角 SP がパラメータ区切りとして認識されてしまいます ので、半角 SP が含まれるパスは全て WQ で括る必要があります。

mogmogtae
質問者

お礼

ご回答ありがとうございます。 御礼が遅くなり申し訳ございません。 なるほど。そこをダブルコーテーションで区切るのですか。 さっそく試したところ無事動きました。

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

投稿後、ふと思ったのですが。。 > ExcelVBA+xdoc2txtを使い、以下の手順でPDFをtxtに変換します。 VBA を使うならわざわざ EXE ではなく、xdoc2txt.ocx を使った方が 何かと都合が良い気がしますね。 最近、類似の質問に回答してます。 http://oshiete1.goo.ne.jp/qa4701263.html 上記 URL の手順で xdoc2txt.ocx, zlib.dll の 2 つのファイルを システムに登録したら、下記のようなソースで指定フォルダ内にある 全対象ファイルのテキスト抽出が可能です。 そして、検索フォルダの指定には、BrowseForFolder で WEB 検索して もらえれば、フォルダ選択ダイアログのサンプルソースが見つかる でしょうから、それを利用します。 もし参考にされるようであれば、エラートラップは必要に応じ追加して 下さい。また、出力は仮に VBE のイミディエイトウインドウにして いますが、外部ファイルにするなり、ワークシートにするなり、適当に 修正してみて下さい。 Sub Sample()      ' // 対象ファイル拡張子(カンマ区切りで小文字指定)   Const LIST_EXTENTION As String = "pdf,xls,txt,doc"      Dim sDirectory As String   Dim sExtention As String   Dim sText   As String      Dim fso    As Object ' // FileSystemObject   Dim f     As Object ' // File   Dim xdc    As Object ' // xdoc2txt   ' // 検索フォルダ   sDirectory = "C:\Documents and Settings\hogehoge\デスクトップ"      ' // xdoc2txt の準備   Set xdc = CreateObject("XDOC2TXT.xdoc2txtCtrl.1")   ' // FileSystemObject の準備   Set fso = CreateObject("Scripting.FileSystemObject")   For Each f In fso.GetFolder(sDirectory).Files     ' // 拡張子で対象ファイルを簡易フィルタ     sExtention = LCase$(fso.GetExtensionName(f.Name))     If InStr(LIST_EXTENTION, sExtention) Then       ' // xdoc2txt を使ってテキスト抽出します       sText = xdc.Convert(f.Path)       ' // イミディエイトウインドウへ出力       Debug.Print String$(80, "-")       Debug.Print "File:= " & f.Name       Debug.Print String$(80, "-")       Debug.Print sText     End If   Next   Set xdc = Nothing   Set fso = Nothing End Sub

mogmogtae
質問者

お礼

ご回答ありがとうございます。 わざわざソースまで書いていただき、重ね重ね ありがとうございます。 残念ながら、今回は特定のPCで作業を行うわけではなく、 xdoc2txt及びPDF一式を持って回って、不特定のPCで 作業するため、ocxでの作業は難しいかと思われます。 今後、そういった機会があれば参考にさせていただきたいと思います。