Страницы: 1
RSS
Масштаб листов по умолчанию,
 
Здравствуйте.
При запуске Excel по стандарту масштаб стоит 100%. Приходится каждый раз при открытии нового файла уменьшать в ручную.

Можно ли как-то зафиксировать нужное значение?
Заранее спасибо.
 
Если речь идет об одном и том же файле то уменьшить и сохранить. Потом перезайти
 
К сожалению, нет.
Постоянно приходится работать с новыми файлами.
 
Записать нужный масштаб в PERSONAL
Согласие есть продукт при полном непротивлении сторон
 
просто любопытно - что за нужда сразу уменьшать масштаб в каждом новом файле?
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
  :(  у меня, например, тоже данные всегда НЕ влазят на мониторе в видимую область... причём постоянно - т к  работать всегда приходиться примерно с одинаковыми массивами инфо (по размеру)... тоже приходиться каждый раз уменьшать масштаб при создании нового документа... а как и что и где записать в Personal??  заранее спасибо...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
в модуле ЭтаКнига файла Personal пишем:
Код
Public WithEvents app As Application

Private Sub Workbook_Open()
  Set app = Application
End Sub

Private Sub app_NewWorkbook(ByVal Wb As Workbook)
  Wb.Windows(1).Zoom = 50
End Sub
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki спасибо большое!.. только один дилетантский вопрос - файл Personal - это где?
если в редакторе ВБА  его нет...
Изменено: JeyCi - 25.07.2014 17:23:44
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
ikki, будьте добры, объясните для чего "Public WithEvents app As Application"?
И, скажите, пожалуйста, для чего "Set app = Application"?
Спасибо.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JeyCi пишет:
это где?
это по-разному. и расширения м.б.разные.
имхо, если такой файл у Вас ещё не открывается при запуске Excel (т.е. его еще нет), проще всего сделать так:
в любой книге нажимаем "запись макроса", месторасположение указываем "личная книга макросов"
делаем любое действие, которое макрорекодер запишет, жмём стоп.
идем в редактор VBA (Alt+F11), в окне проектов видим файл Personal.xls*
удаляем ненужный макрос в стандартном модуле, открываем модуль ЭтаКнига ну и т.д.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
JayBhagavan пишет:
для чего "Public WithEvents app As Application"?
И, скажите, пожалуйста, для чего "Set app = Application"?
объявляем переменную нужного типа с поддержкой событий
при открытии файла Personal (=запуске excel) присваиваем этой переменной ссылку на приложение
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
ikki пишет: в окне проектов видим файл Personal.xls*
ikki точно!! видим  :)   ... он при сохранении причём выругался (даже не заметила на что), книгу удалила... а Personal остался - причём с нужным масштабом! открывается теперь xl... - жизнь станет легче - жить будет интереснее... thanks!
Изменено: JeyCi - 25.07.2014 17:35:53
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
ikki, спасибо за разъяснение. Что делают эти операции я понимаю (объявление переменной, присвоение переменной), а, вот, для чего они именно не понимаю. Ладно, это не особо важно, просто понять хотел. :)

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Цитата
JayBhagavan пишет:
для чего
для того, чтобы можно было потом написать
Код
Private Sub app_NewWorkbook(ByVal Wb As Workbook)
и оно работало бы
обратите внимание: в имени процедуры, обрабатывающей событие создания новой книги app_NewWorkbook app - это как раз имя нашей переменной, которую мы до этого объявили и инициализировали.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, м-да, эти тонкости пока не доступны моему пониманию. Задам ещё вопрос, извините, пожалуйста.  :)
А чем по сути (кроме визуального различия) "app_NewWorkbook" отличается от "Application_NewWorkbook"?

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
тем, что первый вариант работает.
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, хорошо. Спасибо.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Извините меня, но я не могу понять что нужно сделать, дохожу до: идем в редактор VBA (Alt+F11), в окне проектов видим файл Personal.xls* и дальше не понимаю. Поясните пожалуйста.

Цитата
удаляем ненужный макрос в стандартном модуле, открываем модуль ЭтаКнига ну и т.д.
подскажите, сделал как написано, вставил код в ЭтаКнига, удалил макрос из Модуле1. Открываю новую книги, или старый документ, масштаб так и стоит 100%. Что не так сделал?
 
Спасибо ikki за подробные объяснения, используя Ваши подсказки решил свою задачу:
Мне нужно было чтобы при открытии любого эксель файла (а не только нового файла как в примере выше) его масштаб устанавливался в 75%
Вот как это решилось:
Получилось и в офисе2016, проблема была в том что в офисе2016 нужно обязатьльно проверять на "If (str <> "PERSONAL.XLSB") Then"
А в офисе2007 и без этого работало

Весь нижеследующий текст вставляется в PERSONAL.XLSB в раздел ЭтаКнига
Код
'объявляем переменную нужного типа с поддержкой событий
Public WithEvents appALEX As Application

'при открытии файла Personal (=запуске excel) присваиваем этой переменной ссылку на приложение
Private Sub Workbook_Open()
  Set appALEX = Application
End Sub

'процедура, обрабатывающая событие открытия книги
Private Sub appALEX_WorkbookOpen(ByVal Wb As Workbook)
Dim str As String

str = Wb.Name

  If (str <> "PERSONAL.XLSB") Then
    'MsgBox ("Открытие книги")
    'MsgBox (str)
    Range("A1").Select
    Wb.Windows(1).Zoom = 75
  End If

End Sub

Теперь при открытии абсолютно любого эксель файла его масштаб автоматически ставится в 75%
Это нужно когда в день приходится просмотреть несколько десятков бланков заказа от клиентов и они присылают их в разных масштабах, кто 100, кто 200, и т.п. А эксель еще и на удаленной машине, и при после открытия файла подвисает на 20-30 секунд. И после этого можно было только зайти в масштабирование таблицы и его поменять. Теперь он открывает сразу все в нужном масштабе, когда весь бланк целиком на экране. Он и после так же подвисает на 20-30сек, но это уже не страшно, т.к. бланк полностью видно.
Добавил еще Range("A1").Select чтобы бланк заказа всегда открывался сверху, на этом скриншоте этого еще нет:



Может не самый оптимальный и правильный вариант, но он работает! :)
Изменено: katmani - 22.04.2020 20:46:42
 
У меня ругается.
 
Роман Бусов, не туда вставили
Не в отдельный модуль надо, а в модуль "Эта книга"
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ошибки перестал выдвать, но масштаб не делать одинаковым. Excel 2019
Страницы: 1
Читают тему
Наверх