2016-11-18 20 views
0

私はVBAコーディングの初心者ですが、rtfファイルがあるフォルダを選択できるようにExcelでマクロを作成する方法を知りたいと思いますそれらをすべて同じフォルダ内のpdfに変換します。Excel VBAコードを使用して、フォルダ内のrtfファイルをpdfファイルに一括変換する

何か助けていただければ幸いです。

種類は、これを実行する最も簡単な方法は、.rtfを開き、PDFに変換するWordを使用することです

+0

あなたの質問はかなりよく言われていますが、研究努力はありません。私はこの例であなたを助けたが、スタックは問題の出発点ではないはずです、Googleはすべきです。 –

答えて

0

について。 Excelはドキュメントではなくスプレッドシートを表示するように設計されていますが、Wordオブジェクトライブラリを参照することでExcelからこれを自動化できます。

組み込みのFileDialogを使用して、フォルダの選択とマクロのエントリポイントの入力を求めます。

'Add a Reference Microsoft Word Object Library 

Sub ConvertRtfToPDF() 

    With Application.FileDialog(msoFileDialogFolderPicker) 
     .AllowMultiSelect = False 
     If .Show() Then 
      ConvertFiles GetFiles(.SelectedItems(1), ".rtf") 
     End If 
    End With 

End Sub 

これは、変換を行う機能である、それはファイルの配列を受け取り、PDFにそれらのすべてを変換します

Sub ConvertFiles(files() As String) 

    Dim wd As New Word.Application 
    Dim doc As Word.Document 
    Dim file As Variant 

    For Each file In files 
     Set doc = wd.Documents.Open(file, ReadOnly:=True) 
     doc.ExportAsFixedFormat Replace(file, ".rtf", ".pdf"), 17 
     doc.Close 
    Next file 

    wd.Quit 

End Sub 

この機能は、フォルダ名を指定して、ファイル名の配列を返します。

Function GetFiles(folder As String, extension As String) As String() 

    Dim files() As String 
    ReDim files(0) 

    file = Dir(folder & "\") 
    While (file <> "") 
     If Right(file, Len(extension)) = extension Then 
      files(UBound(files)) = folder & "\" & file 
      ReDim Preserve files(UBound(files) + 1) 
     End If 
     file = Dir 
    Wend 
    ReDim Preserve files(UBound(files) - 1) 
    GetFiles = files 

End Function 

モジュールにすべてのことを貼り付けConvertRtfToPDF機能を実行し、フォルダを選択するように求められますし、それがにそのフォルダ内のすべての.rtfを変換します。

関連する問題