zoomType vba

Статус
Закрыто для дальнейших ответов.

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
В коде выскакивает ошибка

Set doc = jso.app.newDoc
doc.Zoom = 300
doc.zoomType = jso.zoomType.fitW --- выдает ошибку Automation error Unspecified error

как ее исправить?
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
Не совсем пойму, что именно вы хотите сделать в итоге - zoom 300% или по ширине экрана?
У меня все работает, может, надо писать zoomtype.fitW ?
 
Последнее редактирование:

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
zoom 300 проверочный, его можно не учитывать
регистр в vba сам меняется, поэтому там он не особо важен
У меня все работает
работает где? в Excel не хочет
может, надо писать zoomtype.fitW
x = jso.zoomtype.fitW выдает значение, т.е. написано правильно
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
Значит, какой то баг конкретной реализации.
А doc.zoom=300 работает правильно? только fitW вылетает? Окно акробата на момент запуска видимо и активно?
 

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
да, doc.zoom=300 работает, как и 20 других команд. не работает только эта одна строчка
пробовал и с активным окном и с неактивным
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
не работает только эта одна строчка
А другие виды зума по размеру экрана работают или только по ширине вылетает?
Я к тому, что, если работает fitV - это уже фактически то, а если fitP или fitH, то путем несложных пересчетов можно добиться требуемого результата '))'
 
Последнее редактирование:

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
другие виды тоже не работают
doc.zoomType = ххх в принципе не может принять любые значения

результата можно добиться другими способами.
этот зум по ширине страницы например можно выставить еще тремя другими командами. но не работает именно этот, в данном случае, четвертый вариант
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
Т.е. присвоение полю zoomType любого из семи возможных значений вызывает ошибку? Печально :(
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
Ладно, продолжаем искать обходные пути ;)
По умолчанию при открытии документа стоит тип fitP
Проверяем это значение на всякий случай, берем текущее значение zoom и пересчитываем по пропорциям страниц! Получается?
 

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
Debug.Print doc.zoomtype - object doesn't support this property or method
Debug.Print doc.Zoom - 83
 

_MBK_

Пикирующий бомбардировщик
12 лет на форуме
Сообщения
24 174
Оценка реакций
8 321
Вообще говоря, очень странно.
А можно полный код глянуть?
Я так понимаю, вы макросом новый документ создаете? Так у него по любому должно быть fitP и проверять не надо. Пересчитываете ваши полученные 83% под ширину документа и бинго!
Но вообще как то странно все выглядит, такое ощущение, что свойство zoomtype вашей моделью или по другому называется
 

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
Код:
Sub test()
Set PDDoc = CreateObject("AcroExch.PDDoc"): PDDoc.Create
Set jso = PDDoc.GetJSObject: Set doc = jso.app.newDoc
Debug.Print doc.Zoom
Debug.Print doc.zoomtype
End Sub
 

shadowbat

Участник
Топикстартер
Сообщения
106
Оценка реакций
1
doc.zoomtype это объект
Срабатывают такие две строки:
Код:
Debug.Print doc.zoomtype.fitP ' = "FitPage"
doc.zoomtype.fitP = doc.zoomtype.fitH ' Ничего не меняется
Но так и не известно, как считать текущий zoomtype или как его установить
 
Статус
Закрыто для дальнейших ответов.