Я хочу автоматизировать некоторые шаги с помощью VBA, а также хочу иметь возможность выполнять все из командной строки. В моем примере я использую Corel Draw, но я думаю, что мой вопрос не зависит от Corel Draw - это скорее вопрос об пространствах имен.VBScript и VBA - проблемы с пространством имен
Так что я написал небольшой скрипт (названный foo.vbs
):
dim drawApp
Set drawApp = CreateObject("CorelDraw.Application.14")
drawApp.OpenDocument("C:\foo\bar.cdr")
Dim exportFilter
set exportFilter = drawApp.ActiveDocument.ExportBitmap("bar.png", cdrPNG, cdrAllPages, cdrRGBColorImage, 10206, 8578, 300, 300, cdrNormalAntiAliasing, False, False, True, False, cdrCompressionNone)
Затем я запустить его из командной строки:
cscript.exe foo.vbs
я получаю ошибку, что cdrPNG
не является определены. Конечно, я не включил в VBScript какие-либо материалы Corel Draw. Но как мне включить материал VBA, специфичный для одного приложения? (Это также может позволить мне написать dim drawApp as CorelDRAW.Application
или что-то в этом роде).
Я очень новичок в VBA и VBScripts, и мне не удалось найти хорошие учебные пособия или справочные ресурсы (сайт Microsoft не очень помогает). Любые указатели приветствуются.
EDIT:
Я скопировал ExportBitmap
-части из кода, который был сгенерирован, когда я recored макроса в Corel Draw. Изучение кода из восстановленных макросов кажется хорошим способом познакомиться с возможностями программного обеспечения VBA. Есть ли способ лучше?
в вашем скрипте Я не вижу, что вы определяете cdrPNG. Это перечисление из Coral Draw? – Sorceri
Да, это так. Я скопировал код, который был сгенерирован, когда я восстановил макрос в Corel DRAW ... – Sh4pe
Я боюсь, что у вас нет выбора, кроме определения их самим Const cdrPNG = «My Constant Value» или Const cdrPNG = MyNumericValue в начале вашего VBScript , – jacouh