lamak58, а если в личную книгу макросов (personal) запихать код, который будет отслеживать создание новой книги? [vba]
Код
Dim WithEvents appExcel As Application Private Sub Workbook_Open() Set appExcel = Application End Sub Private Sub appExcel_NewWorkbook(ByVal Wb As Workbook) Wb.Sheets.Select ActiveWindow.Zoom = 75 Wb.Sheets(1).Select End Sub
[/vba]
Не получается уйти от select'ов
lamak58, а если в личную книгу макросов (personal) запихать код, который будет отслеживать создание новой книги? [vba]
Код
Dim WithEvents appExcel As Application Private Sub Workbook_Open() Set appExcel = Application End Sub Private Sub appExcel_NewWorkbook(ByVal Wb As Workbook) Wb.Sheets.Select ActiveWindow.Zoom = 75 Wb.Sheets(1).Select End Sub
Получилось и в офисе2016, проблема была в том что в офисе2016 нужно обязатьльно проверять на "If (str <> "PERSONAL.XLSB") Then" А в офисе2007 и без этого работало
Весь нижеследующий текст вставляется в PERSONAL.XLSB в раздел ЭтаКнига
[vba]
Код
'объявляем переменную нужного типа с поддержкой событий 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
[/vba]
Теперь при открытии абсолютно любого эксель файла его масштаб автоматически ставится в 75% Это нужно когда нужно в день просмотреть несколько десятков бланков заказа от клиентов и они присылают их в разных масштабах, кто 100, кто 200, и т.п. Добавил еще Range("A1").Select чтобы бланк заказа всегда открывался сверху, на этом скриншоте этого еще нет:
Получилось и в офисе2016, проблема была в том что в офисе2016 нужно обязатьльно проверять на "If (str <> "PERSONAL.XLSB") Then" А в офисе2007 и без этого работало
Весь нижеследующий текст вставляется в PERSONAL.XLSB в раздел ЭтаКнига
[vba]
Код
'объявляем переменную нужного типа с поддержкой событий 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
[/vba]
Теперь при открытии абсолютно любого эксель файла его масштаб автоматически ставится в 75% Это нужно когда нужно в день просмотреть несколько десятков бланков заказа от клиентов и они присылают их в разных масштабах, кто 100, кто 200, и т.п. Добавил еще Range("A1").Select чтобы бланк заказа всегда открывался сверху, на этом скриншоте этого еще нет: