Как можно вызвать стандартное окно "Сохранить или открыть"
HELP...
На форме будет кнопка "Сохранить". Как можно при нажатии на эту кнопку вызвать Windows окно "Сохранить" и потом сохранить лист книги?
HELP...
Есть библиотека, Common Dialog Control, кажется. Сразу что-то не нашел. В ней стандартные диалоги открыть, сохранить, цвет и т.д.
Есть библиотека, Common Dialog Control, кажется. Сразу что-то не нашел. В ней стандартные диалоги открыть, сохранить, цвет и т.д.
Есть два способа:
1. Вызвать собственно соответствующее экселевское окно:
Application.Dialogs(xlDialogOpen).Show
Application.Dialogs(xlDialogSaveAs).Show
(при этом можно там указывать всякие дополнительные параметры)
когда ты там чего-нибудь наберешь, будет произведено открытие/сохранение соответствующего документа.
2. А можно вызвать "эмуляцию" этого окна:
f = Application.GetOpenFilename
f = Application.GetSaveAsFilename
(параметры тоже есть всякие)
Оно выглядит, как обычное окно, но оно не сохраняет/открывает документ, оно только позволяет выбрать его имя. После этого ты можешь сам что-нибудь проверить и произвести открытие/сохранение обычными
Workbooks.Open или Workbooks(...).SaveAs
Есть библиотека, Common Dialog Control, кажется. Сразу что-то не нашел. В ней стандартные диалоги открыть, сохранить, цвет и т.д.
Если ты собираешься сохранять документ Office, то можешь использовать:
1) dlgAnswer = Application.Dialogs(xlDialogOpen).Show (описание константы xlDialogOpen в сравке, например: xlDialogSaveAs) - после выбора диалога сам, автоматом, сохраняет/загружает файл..
2) Если хочешь тока показать диалог и получить путь к файлу (а все остальное сам собираешься делать), тогда можно так:
2.1) Application.GetOpenFilename/Application.GetSaveAsFilename
2.2) или есть еще такие встроенные диалоги: Set fd = Application.FileDialog(msoFileDialogFilePicker/msoFileDialogSaveAs/msoFileDialogOpen и т.д.)
Ну и последний вариант, это CommonDialog использовать, тока как до него добраться из VBE, если VB6,5,4,.. не стоит, я не знаю, помойму там надо для Office качать специально .ocx, а по умолчанию он поставляется... но может я и ошибаюсь, мне и верхних вариантов хватает :-)
Главное это синхронность :-))
Файл COMDLG32.OCX содержит все стандартные диалоги, поставляется с виндой, так что его ни откуда качать не надо. Для подключения к среде VBE достаточно выбрать в списке, доступном через команду References. Добавить на панель компонентов, вставить в нужный диалог. Собственно все.
Файл COMDLG32.OCX содержит все стандартные диалоги, поставляется с виндой, так что его ни откуда качать не надо. Для подключения к среде VBE достаточно выбрать в списке, доступном через команду References. Добавить на панель компонентов, вставить в нужный диалог. Собственно все.
Именно это я и пытался сделать в свое время (когда хотел использовать CommonDialog), но VBE посылает при этом, говорит не его формат и все такое...
Именно это я и пытался сделать в свое время (когда хотел использовать CommonDialog), но VBE посылает при этом, говорит не его формат и все такое...
Спасибо ребята, сейчас буду воплащать ваши советы...