DukereD
макрософил
- Сообщения
- 511
- Реакции
- 132
глупости какие. прекрасно все пишется на JS а на VBA редкая функция нужна. запись в файл или что-то подобное.На js можно только интерфейс сделать, а макросы запускать все на ВБА.
Типа такого:
Код:var doc = window.external.Application; presetScript = doc.GMSManager.RunMacro("DockerName", "Macros.funcName");
можете скачать мой докер в ресурсах и сами посмотреть.
работаем через window.external.Application или определяем для удобства переменную
var host = window.external.Application;
и работаем без всяких VBA и в разы быстрее.
JavaScript:
function defdoc(){
wScale = 1;
ret = false;
if(host.ActiveDocument){
host.ActiveDocument.Unit=3;
host.ActiveDocument.ReferencePoint = 9;
wScale = host.ActiveDocument.WorldScale;
ret = true;
}
return ret;
}
function dos_rotate(s, ang, param, rotate_rel){
if(param === undefined) param = 0;
if(rotate_rel === undefined) rotate_rel = true;
if (param=="long"){
s.Rotate(-max_ang(s,false));
}else if (param=="ang"){
if(shft>0) s.Rotate(ang); else s.Rotate(-ang);
}else if (param=="center"){
s.SetRotationCenter(s.centerX,s.centerY);
}else{
shft = Shift();
if(isCtrl(shft)) s = s.Duplicate();
if(rotate_rel) s.Rotate(ang); else s.RotationAngle = ang;
}
return s;
}
Последнее редактирование: