[CDR X5-X8] Запуск макроса в авто режиме

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Всем доброго времени суток.

Есть макрос с именем макро1, находится в module1 globalmacross.
Нужно автоматом запускать макрос при запуске coreldraw или создании нового документа.
Версия coreldraw x7
Если кто знает, подскажите как сделать автозапуск.
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
  • Спасибо
Реакции: ssisk-051 и _MBK_

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
С выводом сообщения при запуске корел всё работает, а как сделать запуск другого макроса из этого?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
А что именно вам надо вообще? Почему нельзя нужный код именно в этом макросе разместить?
 
  • Спасибо
Реакции: ssisk-051

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
а как сделать запуск другого макроса из этого?
вместо кода с сообщением вставить код запуска другого макроса ( если он у вас представлен отдельно) либо вставить непосредственно код для исполнения
 
  • Спасибо
Реакции: ssisk-051

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Private Sub GlobalMacroStorage_Start()
'устанавливаем параметры страницы
'ActiveDocument.Unit = cdrInch
ActiveDocument.Unit = cdrMillimeter
If GetSetting("GF2", "Setting", "Width", "2070") <> "" And GetSetting("GF2", "Setting", "Height", "2800") <> "" Then
ActiveDocument.MasterPage.SetSize GetSetting("GF2", "Setting", "Width", "2070"), GetSetting("GF2", "Setting", "Height", "2800")
Else
ActiveDocument.MasterPage.SetSize 2070, 2800
End If
ActiveWindow.ActiveView.ToFitPage
ActiveDocument.ReferencePoint = cdrCenter
If GetSetting("GF2", "Setting", "Folder") <> "" Then
strFolder = GetSetting("GF2", "Setting", "Folder")
Else
Dim strTmp As String
strTmp = CorelScriptTools.getfolder
If strTmp <> "" Then
strFolder = strTmp
SaveSetting "GF2", "Setting", "Folder", strFolder
Else
MsgBox "Рабочая папка не выбрана!"
End If
End If
'загружаем язык
Dim tmp As String
If GetSetting("GF2", "Setting", "Lang", "ru.txt") <> "" Then
strLang = GetSetting("GF2", "Setting", "Lang", "ru.txt")
Else
strLang = strFolder & "ru.txt"
End If
Open strFolder & "\Lang\" & strLang For Input As 1#
Set colLang = Nothing
While Not EOF(1)
Line Input #1, tmp
colLang.Add tmp
Wend
Close 1#


'
BaseForm.MultiPage1.Page6.Visible = True

'загружаем основную форму

BaseForm.Show
End Sub


Вставил код, Corel загружается, макрос нет. Как только пытаюсь зайти в редактор макросов стартует автозапуск.
если вместо Start написать DocumentNew, при открытии документа всё работает.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Вставил код, Corel загружается, макрос нет. Как только пытаюсь зайти в редактор макросов стартует автозапуск.
У вас, скорее всего, при старте корела макрос срабатывает, но в этот момент ни активного документа ни активного вью нет еще
Не совсем ясна цель данного кода - что вы хотите при старте корела?
 
  • Спасибо
Реакции: ssisk-051

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Запустить основную форму макроса BaseForm.Show с параметрами документа которые в коде указанны.
 

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
не проще ли будет при запуске
открывать заранее сформированный в соответствии с вашими параметрами и лежащий в нужном месте документ
и запускать форму командой типа
GMSManager.RunMacro "GlobalMacros", "Module1.MySub"
 
  • Спасибо
Реакции: ssisk-051

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Я опасаюсь, что сильно влезть в стартовую последовательность корела не сильно получится. В противном случае при определенном везении можно повалить его намертво.
 
  • Спасибо
Реакции: ssisk-051

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Я опасаюсь, что сильно влезть в стартовую последовательность корела не сильно получится. В противном случае при определенном везении можно повалить его намертво.
Я и не хотел при старте выводить сразу кучу последовательных команд.
Хочу просто при запуске Corel чтобы создался новый документ и запустился макрос с нужным именем,
а дальше он сам всё сделает.

GMSManager.RunMacro "GlobalMacros", "Module1.MySub"
Примерно так я и думал, только вместо MySub имя макроса, но он не стартует пока не зайду после запуска Corel в редактор макросов.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
Хочу просто при запуске Corel чтобы создался новый документ и запустился макрос с нужным именем,
Допустим, у вас бы это получилось, но в макросе ошибка (зацикливание, обрушение системы, запуск вируса и т д). А как тогда вернуть работоспособность корелу, чтобы он запускался в нормальном режиме и поправить макрос?
 
  • Спасибо
Реакции: ssisk-051

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Допустим, у вас бы это получилось, но в макросе ошибка (зацикливание, обрушение системы, запуск вируса и т д). А как тогда вернуть работоспособность корелу, чтобы он запускался в нормальном режиме и поправить макрос?
Согласен, а если на создание нового документа сделать запуск макроса?
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
  • Спасибо
Реакции: ssisk-051

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
Хочу просто при запуске Corel чтобы создался новый документ и запустился макрос с нужным именем,
Код:
Private Sub GlobalMacroStorage_Start()
  Dim doc As Document
  Set doc = OpenDocument("C:\Folder\File.cdr")
  GMSManager.RunMacro "GlobalMacros", "Module1.MySub"
End Sub
а ваш макрос пусть лежит где лежал
на создание нового документа сделать запуск макроса?
у которого опять нет размера и пути? ... но можно
Private Sub GlobalMacroStorage_DocumentNew(Doc As Document, FromTemplate As Boolean, Template As String, IncludeGraphics As Boolean)
MsgBox "Поздравляем с созданием документа " & Doc.Name
GMSManager.RunMacro "GlobalMacros", "Module1.MySub"

End Sub
 
  • Спасибо
Реакции: ssisk-051

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 198
Реакции
10 848
  • Спасибо
Реакции: ssisk-051 и dastin

ssisk-051

Участник
Топикстартер
Сообщения
11
Реакции
1
Вы ж вроде пробовали?
Пробовал, но ниже отписался
Хотя нет, если редактор макросов не открыт тоже не работает.
Вобщем разобрался, я в настройках VBA не снял галочку на задержку при загрузке VBA.
Теперь при запуске создаётся новый документ, а за ним стартует макрос.

Всем огромное спасибо За помощь!!!
 
Последнее редактирование модератором:

dastin

Некромант-любитель
12 лет на форуме
Сообщения
2 145
Реакции
2 043
  • Спасибо
Реакции: ssisk-051