Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11

[CorelDraw] "Сохранить как" в туже папку с тем же именем, в другой версии

21.04.2017, 12:34. Показов 7225. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Часто приходится пересохранять файлы .cdr из 17 в 13 версию. С помощью макродекодера записал код и откорректировал, чтобы он пересохранял в туже папку и стем же именем, где и лежит пересохраняемый файл. Но код не работает

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Macro3()
    ' Recorded 20.04.2017
    Dim SaveOptions As StructSaveAsOptions
    Set SaveOptions = CreateStructSaveAsOptions
    With SaveOptions
        .EmbedVBAProject = True
        .Filter = cdrCDR
        .IncludeCMXData = False
        .Range = cdrAllPages
        .EmbedICCProfile = True
        .Version = cdrVersion13
        .KeepAppearance = True
    End With
    ActiveDocument.SaveAsFile Name: ActiveDocument.Path , SaveOptions
End Sub
В VBA я "чайник", поэтому обращаюсь за помощью.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.04.2017, 12:34
Ответы с готовыми решениями:

Определить ,сколько слов в тексте начинается и заканчивается на одну и туже букву
Помогите пожалуйста:)

Когда несколько раз подряд открываешь одну и туже форму то в Комбобоксе данные увеличиваются в 2 раза
Когда несколько раз подряд открываешь одну и туже форму то в Комбобоксе данные увеличиваются в 2...

RND() выдает одну и туже комбинацию
Доброго времени суток есть код Sub macro111() y = Selection.Row t = Selection.Column Dim asd...

15
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
21.04.2017, 13:51
Самой программы нет, код выглядит адекватно, кроме .SaveAsFile посмотрите в диспетчере объектов, какие параметры в каком порядке требует этот метод и исправьте. Ошибка явно есть в этой строке!

Добавлено через 2 минуты
А если так:
Visual Basic
1
ActiveDocument.SaveAsFile Name:=ActiveDocument.Path, SaveOptions
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
21.04.2017, 14:02  [ТС]
Так тоже выдает ошибку "Compille error: syntax error".
Как вызвать диспетчер объектов?
0
 Аватар для mc-black
2786 / 718 / 106
Регистрация: 04.02.2011
Сообщений: 1,443
23.04.2017, 22:59
В VB IDE меню View - Object Browser... Там ввести метод SaveAs, найти метод (зеленая пиктограмма), посмотреть какие параметры метод ожидает. Я нашел за вас в интеренет:
https://community.coreldraw.co... ent.SaveAs
Visual Basic
1
Sub SaveAs(ByVal FileName As String, Optional ByVal Options As StructSaveAsOptions = Nothing)
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 10:00
Цитата Сообщение от танбраун Посмотреть сообщение
ActiveDocument.SaveAsFile Name: ActiveDocument.Path , SaveOptions
короче, пробел не туда поставили, правильнее SaveAs FileName. А еще проще - SaveAs ActiveDocument.Path, SaveOptions
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
24.04.2017, 11:13  [ТС]
короче, пробел не туда поставили, правильнее SaveAs FileName
Пробелы поставил куда надо, частично начал работать (выбирает ту же папку, название файла, но не выбирает версию программы и не сохраняет). Path , SaveOptions подсвечивает желтым цветом.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Macro1()
    ' Recorded 24.04.2017
    Dim SaveOptions As StructSaveAsOptions
    Set SaveOptions = CreateStructSaveAsOptions
    With SaveOptions
        .EmbedVBAProject = True
        .Filter = cdrCDR
        .IncludeCMXData = False
        .Range = cdrAllPages
        .EmbedICCProfile = True
        .Version = cdrVersion13
        .KeepAppearance = True
    End With
ActiveDocument.SaveAs FileName: ActiveDocument.Path , SaveOptions
End Sub
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 11:24
Цитата Сообщение от танбраун Посмотреть сообщение
ActiveDocument.SaveAs FileName: ActiveDocument.Path , SaveOptions
ошибка, конечно же здесь. Нужно писать либо ActiveDocument.SaveAs FileName:= ActiveDocument.Path, SaveOptions, т.е. явное задание аргумента, либо просто ActiveDocument.SaveAs ActiveDocument.Path, SaveOptions.
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
24.04.2017, 12:10  [ТС]
Цитата Сообщение от _shark Посмотреть сообщение
ошибка, конечно же здесь. Нужно писать либо ActiveDocument.SaveAs FileName:= ActiveDocument.Path, SaveOptions, т.е. явное задание аргумента, либо просто ActiveDocument.SaveAs ActiveDocument.Path, SaveOptions.
Попробовал оба варианта. В первом варианте шрифт становится красным, во втором подсвечивается желтым вся строка.
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 13:23
вместо ActiveDocument.Path напишите ActiveDocument.FullFileName. Но имейте в виду, что ваш код будет работать при загруженном, но не созданном файле
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
24.04.2017, 14:46  [ТС]
Цитата Сообщение от _shark Посмотреть сообщение
код будет работать при загруженном, но не созданном файле
Мне надо чтобы код работал на уже созданном и сохраненном файле
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 15:17
так и будет. Просто если вы создали файл, то значение переменной ActiveDocument.FullFileName будет пустое, т.к. она должна содержать полный путь к имени файла, который загружен в Корел. То есть, порядок будет примерно такой: создали файл, сохранили обычным способом, а потом уже пересохранили с помощью макроса. Можно, конечно, избавиться от такого двойного сохранения, но тогда вам нужно будет прописать имя файла в вашем макросе. В виде ActiveDocument.SaveAs "C:\Путь_к_файлу\имя_файла" , SaveOptions
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
24.04.2017, 15:34  [ТС]
так же работает только до окна сохранить
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 17:34
а что после этого? выдает ошибку или еще что?

попробуйте заодно код на каком-нибудь простом макете, например, нарисуйте прямоугольник, сохраните файл обычным способом, потом попробуйте сохранить через макрос
0
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
24.04.2017, 18:01  [ТС]
После как запускаешь код появляется окно "Сохранить" с именем и местом сохранения исходного файла. Затем, задав версию сохранения программы, можно сохранить или закрыть. После этого открывается окно VBA c ошибкой.

Код пробую на разных макетах.
0
193 / 191 / 31
Регистрация: 11.10.2016
Сообщений: 610
24.04.2017, 18:37
Лучший ответ Сообщение было отмечено танбраун как решение

Решение

окно выбора файла при сохранении, как правило, появляется если имя файла - пустое или неправильное. Попробуйте также добавить следующие строки в блок где предложения начинаются с точки:
.Overwrite = True
.ThumbnailSize = cdr10KColorThumbnail

кроме того, убедитесь, что предпоследняя строка у вас выглядит в виде ActiveDocument.SaveAs ActiveDocument.FullFileName, SaveOptions и что, самое главное, ActiveDocument.FullFileName содержит имя и путь вашего файла. Например, перед SaveAs напишите MsgBox ActiveDocument.FullFileName. Вам должно выдать, как я уже говорил, имя и путь вашего файла
1
0 / 0 / 0
Регистрация: 21.04.2017
Сообщений: 11
25.04.2017, 08:37  [ТС]
Большое спасибо за Вашу поддержку, код заработал.

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Macro1()
    ' Recorded 24.04.2017
    Dim SaveOptions As StructSaveAsOptions
    Set SaveOptions = CreateStructSaveAsOptions
    With SaveOptions
        .EmbedVBAProject = True
        .Filter = cdrCDR
        .IncludeCMXData = False
        .Range = cdrAllPages
        .EmbedICCProfile = True
        .Version = cdrVersion13
        .KeepAppearance = True
        .Overwrite = True
.ThumbnailSize = cdr10KColorThumbnail
    End With
ActiveDocument.SaveAs ActiveDocument.FullFileName, SaveOptions
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.04.2017, 08:37
Помогаю со студенческими работами здесь

Поиск текста и перемещение по документу Word из редактора VBA CorelDraw X6
Добрый день! Пробую автоматизировать работу, осваиваю VBA, столкнулся со следующей загвоздкой: ...

Документация VBA по CorelDraw
Здравствуйте. Заранее извиняюсь, но поиск по форуму ничего не дал. Мне нужна документация VBA по...

CorelDraw и Excel
Здравствуйте, открываю файл эксель и получаю ошибку "sub or function not defined" вот код Private...

Ошибка при запуске макроса CorelDraw
здравствуйте. есть макрос написанный для CorelDraw 13 и в нем все нормально, но при попытке...

VB в CorelDRAW X5 перестал понимать стандартные команды
Доброго времени суток! Подскажите пожалуйста, что могло произойти. VB в CorelDRAW X5 перестал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru