2017-08-23 17 views
0

私は3つの単語のdocファイルを持っていて、それらのファイル名をNow()に変更したいと思います。 3つのファイルが同時に複数のファイルを保存して名前を変更せずにPDFとして保存

2.

1. EMEA.doc --rename-> EMEAの083117.doc -convert-> EMEAの082317.PDFとしてCEEMEA.doc です - rename-> CEEMEAの083117.doc -convert-> CEEMEAの082317.PDF

3. LATAM.doc --rename-> LATAMの083117.doc -convert->私はExportAsFixedFormat(PDF)に必要 LATAMの082317.PDF

これら.Docファイル。コードに続いてActiveDocumentの仕事をしてください。私はVBAが場所を求めることなく、特定の場所にファイルを保存したい。

ActiveDocument.ExportAsFixedFormat OutputFileName:= _ 
    "C:\Documents and Settings\Administrator\Desktop\EMEA CEEMEA\LATAM.pdf", ExportFormat _ 
    :=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ 
    wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, To:=1, _ 
    Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ 
    CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ 
    BitmapMissingFonts:=True, UseISO19005_1:=False 
+0

私は理解していませんが、コード内でそれらを1つ1つ開き、それらのすべてを同じようにするのはなぜですか?またはループを使用しますか? – vacip

+0

@vacip開いて印刷するのに時間がかかり、保存したい。問題のファイルは単なる例であり、名前を変更して変換するファイルがたくさんあります。 –

+0

あなたは 'EMEA.doc -convert-> EMEA 082317.PDF'をやってみませんか? – jsotola

答えて

1

3つのファイルに対してUserFormを作成し、コードをコピーします(以下に示す)。PDF_Clickにコピーします。

コードは、1つによってそれらのすべての3つのいずれかを開き、Now()日付でSAVEASを行い、For loopを使用してチェックマークされたファイルのためにPDFを作成します。

Private Sub PDF_Click() 

Dim d As String 

Finalize.hide 
Dim C As MSForms.Control 
For Each C In Me.Controls 
    If TypeName(C) = "CheckBox" Then 
    If C.Value = True Then 
    If C.Caption = "Select All" Then 
    Else 

VD = "C:\Documents and Settings\Administrator\Desktop\EMEA CEEMEA\" 

Documents.Open FileName:=VD & C.Caption & ".doc" 

d = Format(Now(), "mmddyy") 
f = VD & Ctl.Caption & " " & d 
ActiveDocument.SaveAs2 f & ".doc" 

ActiveDocument.ExportAsFixedFormat OutputFileName:= _ 
     f & ".pdf", ExportFormat _ 
     :=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _ 
     wdExportOptimizeForPrint, Range:=wdExportAllDocument, From:=1, TO:=1, _ 
     Item:=wdExportDocumentContent, IncludeDocProps:=True, KeepIRM:=True, _ 
     CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _ 
     BitmapMissingFonts:=True, UseISO19005_1:=False 

ActiveDocument.Close 

    End If 
    End If 
    End If 

Next 
End Sub 

この回答は参考になった:

3

一般方向:あなたが操作したいファイルをプログラム(例えば「all word files in folder x」)を指示する必要があり

  1. あなたはすでに(ファイル名の名前を変更するためのルールを持っているように見える& "" & date)、問題のすべてのファイルをループするだけです。あなたが実際に単語を「変換しない」ん:batch file
  2. Open and save each document to PDF(バックグラウンドで行うことができ、実際に文書を開くする必要が)

リネームファイルために、VBAには良い代替解決策になるかもしれません追加の(PDF)ファイルのみを保存します。 「変換」のようにするには、PDFを同じ場所に保存して元の単語ファイルを削除する必要があります。

プログラムに特定の問題が発生した場合は、問題のコードラインを使って、エラー/間違った動作、目的の動作、およびこれまでの修正方法を説明してください。

関連する問題