VBA Word - сохранить как диалог с начальным именем файла

у меня есть макрос vba, который вносит некоторые изменения в текущий документ и определяет имя файла, которое должно использоваться для него - если документ еще не сохранен как это имя файла, пользователю должно быть предложено сделать это (но он должен иметь возможность изменить настройку по умолчанию).

Я нашел две возможности, которые оба не идеальны (мне нужно сочетание этих двух).

первый подход:

Application.Dialogs(wdDialogFileSaveAs).Show

открывает Save As диалог и позволяет изменить формат и имя файла, но имя файла по умолчанию-старое имя файла или заголовок (до первого специального символа, такого как blank или -) документа (в случае, если он еще не был сохранен - изменение названия документа мало помогает, поскольку предлагаемое имя файла будет содержать -). Можно ли изменить начальное имя файла, показанное в Save As диалог?

второй подход:

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 будет выбирать только имя файла, поэтому мы должны сохранить его явно. Этот подход покажет filename Я хочу, но если пользователь изменяет суффикс на e.g .pdf файл по-прежнему будет сохранен в .docx формат (с использованием суффикса .формат PDF). Я не планировал иметь огромное различие случаев здесь для редкого случая, когда пользователю нужен другой формат, чем .docx. Есть ли простой способ сохранить файл в правильном формате, используя этот второй подход?

1 ответов


вы пытались заменить вызов ActiveDocument.SaveAs линия с

Application.FileDialog(msoFileDialogSaveAs).Execute