powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов формы "Save as" в VBA
11 сообщений из 11, страница 1 из 1
Вызов формы "Save as" в VBA
    #39511127
Djenie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Пишу макрос для Outlook, в котором нужно вызвать форму "Save as".
Нашла в Additional Controls, расположенном на форме Toolbars, CommonDialog, пытаюсь разместить его на своей форме, а мне пишет, что интерфейс не поддерживается.
Я предполагаю, что не хватает какой-то библиотеки с формами windows, но не могу понять.
Помогите, пожалуйста!
Пользуюсь MS Outlook 2013 и пишу макрос на встроенном в outlook VBA.
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39511667
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Djenie,

в справке все есть. Пишем SaveAs и на его фоне нажимаем F1


Example


This Visual Basic for Applications (VBA) example uses the SaveAs method to save the currently open item as a text file in the Documents folder, using the subject as the file name. To run this example, make sure a mail item in plain text format is open in the active window.

Visual Basic for Applications
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Sub SaveAsTXT()
    Dim myItem As Outlook.Inspector
    Dim objItem As Object

    Set myItem = Application.ActiveInspector
    If Not TypeName(myItem) = "Nothing" Then
        Set objItem = myItem.CurrentItem
        strname = objItem.Subject
        'Prompt the user for confirmation
        Dim strPrompt As String
        strPrompt = "Are you sure you want to save the item? " & _
        "If a file with the same name already exists, " & _
        "it will be overwritten with this copy of the file."	
        If MsgBox(strPrompt, vbYesNo + vbQuestion) = vbYes Then
            objItem.SaveAs Environ("HOMEPATH") & "\My Documents\" &  strname & ".txt", olTXT
        End If
    Else
        MsgBox "There is no current active inspector."
    End If
End Sub 



This Visual Basic for Applications example shows you how to create a template using the SaveAs method.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Visual Basic for Applications 
Sub CreateTemplate()
    Dim MyItem As Outlook.MailItem
	
    Set MyItem = Application.CreateItem(olMailItem)
    MyItem.Subject = "Status Report"
    MyItem.To = "Dan Wilson"
    MyItem.Display
    MyItem.SaveAs Environ("HOMEPATH") & "\My Documents\statusrep.oft", OlSaveAsType.olTemplate
End Sub 



...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39511702
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дополнение:

В Outlook нет возможности вывести форму выбора пути для сохранения. Тут используют средства других программ, например Excel.
Set xlApp = CreateObject("Excel.application")
xlApp.WindowState = -4137 'xlMaximized
xlApp.Caption
xlApp.Visible = False
Set strSaveAsFilename = xlApp.FileDialog(msoFileDialogFolderPicker)
With strSaveAsFilename
.Show
.vbNormalFocus
k = .SelectedItems(1)
End With
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39511705
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Djenie,

"Shell.Application" + BrowseForFolder
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39511709
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дополнение:

В Outlook нет возможности вывести форму выбора пути для сохранения. Тут используют средства других программ, например Excel.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Set xlApp = CreateObject("Excel.application")
xlApp.WindowState = -4137 'xlMaximized
xlApp.Caption
xlApp.Visible = False
Set strSaveAsFilename = xlApp.FileDialog(msoFileDialogFolderPicker)
With strSaveAsFilename
       .Show
       .vbNormalFocus
       k = .SelectedItems(1)
End With
If IsEmpty(k) Then Exit Sub
k = IIf(Right(k, 1) = "\", k, k & "\") ' переменная для пути сохранения
xlApp.Quit
Set xlApp = Nothing
...
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39512401
Djenie,

можно использовать API. Для 32-битного VBA модуль-оболочка есть здесь: Q: GetOpenFilename / GetSaveAsFilename API dialog . Скопировать в свой проект и вызвать соответствующую функцию (GetSaveAsFileName).
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39515459
Djenie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
An12, то что есть в справке мне не подходит, а вот дополнение - использование окна через Excel - это почти то, что мне нужно! Огромное спасибо! Но возник вопрос, при вызове формы таким способом, я вижу только папки, а их содержимое - нет, можно это как-то настроить?
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39515460
Djenie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
big-duke, спасибо большое! Но эта формочка не совсем то, что мне нужно
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39515461
Djenie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
13-й квартал, дело в том что у меня как раз 64-битный VBA, и этот вариант совсем мне не подходит
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39515661
An12
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тогда другие процедуры, можно посмотреть тут . Сам их не пробовал.
...
Рейтинг: 0 / 0
Вызов формы "Save as" в VBA
    #39521374
Djenie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
An12, спасибо большое!
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Вызов формы "Save as" в VBA
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]