Mam makro vba, które wprowadza pewne zmiany do bieżącego dokumentu i określa nazwę pliku, który powinien zostać użyty - jeśli dokument nie jest zapisany jako nazwa pliku, ale użytkownik powinien poproszony o zrobienie tego (ale powinien być w stanie zmienić domyślne ustawienie).Słowo VBA - Zapisz jako okno dialogowe z początkową nazwą pliku
Znalazłem dwie możliwości, które nie są idealne (potrzebowałbym kombinacji tych dwóch).
Pierwsze podejście:
Application.Dialogs(wdDialogFileSaveAs).Show
Otwiera Save As
dialogowe i pozwala zmienić format i nazwę pliku, ale domyślna nazwa pliku jest stara nazwa pliku lub tytuł (do pierwszego znaku specjalnego jak pusty lub -
) dokumentu (na wypadek, gdyby nie był jeszcze zapisany - zmiana tytułu dokumentu jest mało przydatna, ponieważ sugerowana nazwa pliku będzie zawierała -
). Czy jest możliwa zmiana początkowej nazwy pliku wyświetlanej w oknie dialogowym Save As
?
Drugie podejście:
Application.FileDialog(msoFileDialogSaveAs).InitialFileName = filename
Dim choice As Integer
choice = Application.FileDialog(msoFileDialogSaveAs).Show
If choice <> 0 Then
filename = Application.FileDialog(msoFileDialogSaveAs).SelectedItems(1)
Call ActiveDocument.SaveAs(filename:=filename, FileFormat:=wdFormatDocumentDefault)
End If
FileDialog
wybiorą tylko nazwę pliku, więc musimy go zapisać jawnie. To podejście pokaże filename
Chcę, ale jeśli użytkownik zmieni sufiks np. Na .pdf
, plik będzie nadal zapisany w formacie .docx
(przy użyciu przyrostka .pdf). Nie planowałem tutaj rozróżnienia przypadków w rzadkich przypadkach, gdy użytkownik potrzebuje innego formatu niż .docx
. Czy istnieje łatwy sposób na zapisanie pliku we właściwym formacie przy użyciu tego drugiego podejścia?
jesteś cholernie dobrze, dziękuję – outofmind