Makra Word VBA - Zapisz jako (PDF lub nowa nazwa pliku)

Zapisz jako

To makro programu Word zapisze plik ActiveDocument pod nową nazwą pliku, która zawiera aktualny czas:

Sub SaveMewithDateName() 'zapisuje aktywny dokument w bieżącym folderze jako przefiltrowany html i nazwany według aktualnego czasu Dim strTime As String strTime = Format(Teraz, "hh-mm") ActiveDocument.SaveAs FileName:=ActiveDocument.Path & "\" & strTime, FileFormat:=wdFormatFilteredHTML End Sub

Utwórz i zapisz jako

To makro VBA utworzy nowy dokument i zapisze z bieżącą datą i godziną:

Sub CreateAndSaveAs() 'tworzy nowy dokument i zapisuje go jako przefiltrowany html [W folderze domyślnym i nazwanym według aktualnego czasu] Dim strTime As String Dim strPath As String Dim oDoc As Document strPath = ActiveDocument.Path & Application.PathSeparator strTime = Format (Teraz „rrrr-mm-dd gg-mm”) Set oDoc = Documents.Add 'utwórz nowy dokument i przypisz go do zmiennej oDoc 'zapisz tekst w nowym dokumencie, który się do niego odnosi, używając zmiennej oDoc oDoc.Range.InsertBefore "Odwiedź https://easyexcel.net/vba-code-library" oDoc.SaveAs FileName:=strPath & strTime, FileFormat:=wdFormatFilteredHTML oDoc.Close wdDoNotSaveChanges 'zamknij dokument End Sub

Zapisz jako PDF

To makro zapisze dokument programu Word jako plik PDF:

Sub MacroSaveAsPDF() 'makro zapisuje plik PDF albo w tym samym folderze, w którym znajduje się aktywny dokument, albo w folderze dokumentów, jeśli plik nie został jeszcze zapisany ' Dim strPath As String Dim strPDFname As String strPDFname = InputBox("Wprowadź nazwę pliku PDF", "Nazwa pliku ", "przykład") If strPDFname = "" Następnie 'użytkownik usunął tekst z pola wprowadzania, dodaj domyślną nazwę strPDFname = "przykład" End If strPath = ActiveDocument.Path If strPath = "" Then 'dokument nie został jeszcze zapisany strPath = Opcje. DefaultFilePath(wdDocumentsPath) & Application.PathSeparator Else 'po prostu dodaj \ na końcu strPath = strPath & Application.PathSeparator End If ActiveDocument.ExportAsFixedFormat OutputFileName:= _ strPath & strPDFname & ".pdf", _ ExportFormat:=PDFerExport_Export =False, _ OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportAllDocument, _ IncludeDocProps:=True, _ CreateBookmarks:=wdExportCreateWordBookmarks, _ BitmapMissingFonts:=True End Sub

Ta funkcja zapisze również dowolny dokument Word jako plik PDF:

Sub MacroSaveAsPDFwParameters(Optional strPath As String, Opcjonalnie strFilename As String) 'strPath, jeśli przekazano, musi zawierać separator ścieżki ["\"] If strFilename = "" Then strFilename = ActiveDocument.Name End If 'wyodrębnij tylko nazwę pliku bez rozszerzenia If InStr (1, strFilename, ".") > 0 Then strFilename = Left$(strFilename, InStrRev(strFilename, ".") - 1) End If strPath = "" Then If ActiveDocument.Path = "" Then 'doc nie jest zapisane, użyjemy domyślnej ścieżki strPath = Options.DefaultFilePath(wdDocumentsPath) & Application.PathSeparator Else ' użyj ścieżki aktywnego dokumentu strPath = Options.DefaultFilePath(wdDocumentsPath) & Application.PathSeparator End If End If On Error GoTo EXITHERE ActiveDocument.ExportA OutputFileName:= _ strPath & strFilename & ".pdf", _ ExportFormat:=wdExportFormatPDF, _ OpenAfterExport:=False, _ OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportAllDocument, _ CreateWWDocProps:=IncludeTrueMarks:=W Brak mapy bitowej ts:=True Exit Sub EXITHERE: MsgBox "Error: " & Err.Number & " " & Err.Description End Sub

Możesz wprowadzić ścieżkę i nazwę pliku, aby wskazać, który plik zapisać jako PDF:

Sub CallSaveAsPDF() Call MacroSaveAsPDFwParameters("c:/Documents", "example.docx") End Sub
wave wave wave wave wave