Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оптимизировать код до версии excel 2010 - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизировать код до версии excel 2010 (Макросы/Sub)
Оптимизировать код до версии excel 2010
segail Дата: Среда, 06.06.2018, 20:34 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте.

Есть некий код позволяющий убирать полосы прокрутки и ярлыки листов,
[vba]
Код
With .ActiveWindow
    .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value 'Убрать полосы прокрутки
    .DisplayWorkbookTabs = Value                    'Убрать ярлыки листов
End With
[/vba]
пока работал в версии 2007, все было нормально, но при работе в версии 2010 данные строки кода стали выдавать ошибки.
Возможно ли данный код оптимизировать до версии 2010?
 
Ответить
СообщениеЗдравствуйте.

Есть некий код позволяющий убирать полосы прокрутки и ярлыки листов,
[vba]
Код
With .ActiveWindow
    .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value 'Убрать полосы прокрутки
    .DisplayWorkbookTabs = Value                    'Убрать ярлыки листов
End With
[/vba]
пока работал в версии 2007, все было нормально, но при работе в версии 2010 данные строки кода стали выдавать ошибки.
Возможно ли данный код оптимизировать до версии 2010?

Автор - segail
Дата добавления - 06.06.2018 в 20:34
Nic70y Дата: Среда, 06.06.2018, 20:56 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8769
Репутация: 2276 ±
Замечаний: 0% ±

Excel 2010
рекордер пишет:
[vba]
Код
    With ActiveWindow
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
    End With
[/vba]


ЮMoney 41001841029809
 
Ответить
Сообщениерекордер пишет:
[vba]
Код
    With ActiveWindow
        .DisplayHorizontalScrollBar = False
        .DisplayVerticalScrollBar = False
        .DisplayWorkbookTabs = False
    End With
[/vba]

Автор - Nic70y
Дата добавления - 06.06.2018 в 20:56
segail Дата: Среда, 06.06.2018, 21:16 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Nic70y, Спасибо.
Завтра гляну на 2010.
 
Ответить
СообщениеNic70y, Спасибо.
Завтра гляну на 2010.

Автор - segail
Дата добавления - 06.06.2018 в 21:16
segail Дата: Четверг, 07.06.2018, 11:19 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Nic70y, Проверил не пошло.
Данные команды вписаны в код скрытия интерфейса, возможно здесь нужно что-то иное.
Пойду в «Клуб программистов» может Гуру данного кода поможет.


Сообщение отредактировал segail - Четверг, 07.06.2018, 11:31
 
Ответить
СообщениеNic70y, Проверил не пошло.
Данные команды вписаны в код скрытия интерфейса, возможно здесь нужно что-то иное.
Пойду в «Клуб программистов» может Гуру данного кода поможет.

Автор - segail
Дата добавления - 07.06.2018 в 11:19
sboy Дата: Четверг, 07.06.2018, 11:55 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
возможно здесь нужно что-то иное

конечно) нужен
код скрытия интерфейса


Яндекс: 410016850021169
 
Ответить
Сообщение
возможно здесь нужно что-то иное

конечно) нужен
код скрытия интерфейса

Автор - sboy
Дата добавления - 07.06.2018 в 11:55
segail Дата: Четверг, 07.06.2018, 12:03 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,
[vba]
Код
Sub ChangeInterface(Value As Boolean)
    With Application
        .ScreenUpdating = False
        .Caption = IIf(Value = True, Empty, "")
        .DisplayStatusBar = Value: .DisplayFormulaBar = Value
        .CellDragAndDrop = False
        Dim iCommandBar As CommandBar
        For Each iCommandBar In .CommandBars
            iCommandBar.Enabled = Value
        Next
        With .ActiveWindow
            .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value    'Скрыть полосы прокрутки
            .DisplayWorkbookTabs = Value                    'Скрыть ярлыки листов
        End With
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & Value & ")"
        .ScreenUpdating = True
    End With
End Sub

Sub УбратьВсё()
    ChangeInterface False
End Sub

Sub ВосстановитьИнтерфейс()
    ChangeInterface True
End Sub

Sub Поменять()
  ChangeInterface Not Application.DisplayStatusBar
End Sub
[/vba]

Сбой происходит при открытии файла в событии книги
[vba]
Код
Private Sub Workbook_Open() 'Открытие книги
    УбратьВсё
End Sub
[/vba]


Сообщение отредактировал segail - Четверг, 07.06.2018, 12:16
 
Ответить
Сообщениеsboy,
[vba]
Код
Sub ChangeInterface(Value As Boolean)
    With Application
        .ScreenUpdating = False
        .Caption = IIf(Value = True, Empty, "")
        .DisplayStatusBar = Value: .DisplayFormulaBar = Value
        .CellDragAndDrop = False
        Dim iCommandBar As CommandBar
        For Each iCommandBar In .CommandBars
            iCommandBar.Enabled = Value
        Next
        With .ActiveWindow
            .DisplayHorizontalScrollBar = Value: .DisplayVerticalScrollBar = Value    'Скрыть полосы прокрутки
            .DisplayWorkbookTabs = Value                    'Скрыть ярлыки листов
        End With
        .ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"", " & Value & ")"
        .ScreenUpdating = True
    End With
End Sub

Sub УбратьВсё()
    ChangeInterface False
End Sub

Sub ВосстановитьИнтерфейс()
    ChangeInterface True
End Sub

Sub Поменять()
  ChangeInterface Not Application.DisplayStatusBar
End Sub
[/vba]

Сбой происходит при открытии файла в событии книги
[vba]
Код
Private Sub Workbook_Open() 'Открытие книги
    УбратьВсё
End Sub
[/vba]

Автор - segail
Дата добавления - 07.06.2018 в 12:03
StoTisteg Дата: Четверг, 07.06.2018, 13:05 | Сообщение № 7
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
segail, назвать переменную Value — это плохая, негодная идея...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеsegail, назвать переменную Value — это плохая, негодная идея...

Автор - StoTisteg
Дата добавления - 07.06.2018 в 13:05
sboy Дата: Четверг, 07.06.2018, 13:24 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Сбой происходит при открытии файла

какая ошибка выскакивает?
а лучше удалите из файла данные и приложите сюда с кодом


Яндекс: 410016850021169
 
Ответить
Сообщение
Сбой происходит при открытии файла

какая ошибка выскакивает?
а лучше удалите из файла данные и приложите сюда с кодом

Автор - sboy
Дата добавления - 07.06.2018 в 13:24
segail Дата: Четверг, 07.06.2018, 14:25 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy,
Ошибка такая
https://yadi.sk/i/8CoJniCP3XLWLj
Тестовый пример
К сообщению приложен файл: 8424464.xlsm (32.4 Kb)
 
Ответить
Сообщениеsboy,
Ошибка такая
https://yadi.sk/i/8CoJniCP3XLWLj
Тестовый пример

Автор - segail
Дата добавления - 07.06.2018 в 14:25
boa Дата: Четверг, 07.06.2018, 17:05 | Сообщение № 10
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 167 ±
Замечаний: 0% ±

365
segail,
попробуйте заменить русскоязычные названия макросов на английские
типа УбратьВсё <=> UbratVse


 
Ответить
Сообщениеsegail,
попробуйте заменить русскоязычные названия макросов на английские
типа УбратьВсё <=> UbratVse

Автор - boa
Дата добавления - 07.06.2018 в 17:05
segail Дата: Четверг, 07.06.2018, 19:09 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
boa, Завтра проверю, 2010 дома нет.
 
Ответить
Сообщениеboa, Завтра проверю, 2010 дома нет.

Автор - segail
Дата добавления - 07.06.2018 в 19:09
_Boroda_ Дата: Четверг, 07.06.2018, 19:28 | Сообщение № 12
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
У меня вот этот файл работает в 2007, 2010 и в 2013 Excelях
К сообщению приложен файл: 8424464_1.xlsm (29.9 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеУ меня вот этот файл работает в 2007, 2010 и в 2013 Excelях

Автор - _Boroda_
Дата добавления - 07.06.2018 в 19:28
segail Дата: Четверг, 07.06.2018, 20:58 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Вы значение переименовали в переменную, надо протестировать, опять же завтра.
А Модуль1 с Макросом2 он зачем?
 
Ответить
Сообщение_Boroda_, Вы значение переименовали в переменную, надо протестировать, опять же завтра.
А Модуль1 с Макросом2 он зачем?

Автор - segail
Дата добавления - 07.06.2018 в 20:58
_Boroda_ Дата: Четверг, 07.06.2018, 21:45 | Сообщение № 14
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Низачем. Забыл убить
Лучше вот так (просто дописал пропуск ошибок)

По поводу названия переменной - все работает и без изменения. Изменил в данном случае исключительно потому, что
1. Не по-феншую
2. Не в этом коде, но теоретически можно очень здорово нарваться
3. Если нужно будет потом искать (Контрл f), то будет очень неудобно
К сообщению приложен файл: 8424464_2.xlsm (29.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНизачем. Забыл убить
Лучше вот так (просто дописал пропуск ошибок)

По поводу названия переменной - все работает и без изменения. Изменил в данном случае исключительно потому, что
1. Не по-феншую
2. Не в этом коде, но теоретически можно очень здорово нарваться
3. Если нужно будет потом искать (Контрл f), то будет очень неудобно

Автор - _Boroda_
Дата добавления - 07.06.2018 в 21:45
boa Дата: Четверг, 07.06.2018, 23:53 | Сообщение № 15
Группа: Друзья
Ранг: Ветеран
Сообщений: 551
Репутация: 167 ±
Замечаний: 0% ±

365
у меня на 2013, 2016 и без "_1" все работало.
думаю, что проблема в локальных настройках юникода винды


 
Ответить
Сообщениеу меня на 2013, 2016 и без "_1" все работало.
думаю, что проблема в локальных настройках юникода винды

Автор - boa
Дата добавления - 07.06.2018 в 23:53
segail Дата: Пятница, 08.06.2018, 09:02 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, При тестировании предлагаемых файлов происходят такие события:
1. При первом открытие файла он определяется как файл внешней среды и эксель просит разрешение на подключение.
2. После подключение разрешения выпадает вышеописанная ошибка, после закрытия и сохранения файла, а далее с последующими открытиями данная ошибка и разрешение на подключение уже не появляются, файл начинает работать корректно.

Так работает первый файл, второй также запрашивает запрос на подключение, но после подключения хоть ошибка и не выходит первоначально открывается без скрытия интерфейса, после сохранения или просто закрытия с последующими открытиями работает также корректно.

Я так понял, что первоначально файл определяется как файл внешней среды и первоначальное подключение выдает данные сбои, независимо от того взято ли значение за переменную или это переменная а также независимо от того каким языком именуется код.
Это как-то можно обойти?


Сообщение отредактировал segail - Пятница, 08.06.2018, 12:28
 
Ответить
Сообщение_Boroda_, При тестировании предлагаемых файлов происходят такие события:
1. При первом открытие файла он определяется как файл внешней среды и эксель просит разрешение на подключение.
2. После подключение разрешения выпадает вышеописанная ошибка, после закрытия и сохранения файла, а далее с последующими открытиями данная ошибка и разрешение на подключение уже не появляются, файл начинает работать корректно.

Так работает первый файл, второй также запрашивает запрос на подключение, но после подключения хоть ошибка и не выходит первоначально открывается без скрытия интерфейса, после сохранения или просто закрытия с последующими открытиями работает также корректно.

Я так понял, что первоначально файл определяется как файл внешней среды и первоначальное подключение выдает данные сбои, независимо от того взято ли значение за переменную или это переменная а также независимо от того каким языком именуется код.
Это как-то можно обойти?

Автор - segail
Дата добавления - 08.06.2018 в 09:02
StoTisteg Дата: Пятница, 08.06.2018, 10:19 | Сообщение № 17
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Это как-то можно обойти?

Естественно, создав свой файл и скопировав туда код макроса и нужные данные.


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщение
Это как-то можно обойти?

Естественно, создав свой файл и скопировав туда код макроса и нужные данные.

Автор - StoTisteg
Дата добавления - 08.06.2018 в 10:19
segail Дата: Пятница, 08.06.2018, 11:05 | Сообщение № 18
Группа: Пользователи
Ранг: Новичок
Сообщений: 21
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
StoTisteg, я о том, что созданный свой фал, перемещаясь по компьютерам на носителе или находясь в облаке, будет постоянно запрашивать разрешение на подключение, что в итоге будет приводить к выше описанному сбою.


Сообщение отредактировал segail - Пятница, 08.06.2018, 11:21
 
Ответить
СообщениеStoTisteg, я о том, что созданный свой фал, перемещаясь по компьютерам на носителе или находясь в облаке, будет постоянно запрашивать разрешение на подключение, что в итоге будет приводить к выше описанному сбою.

Автор - segail
Дата добавления - 08.06.2018 в 11:05
StoTisteg Дата: Пятница, 08.06.2018, 12:55 | Сообщение № 19
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
segail, тогда задать Винде и Экселю менее параноидальные настройки...


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеsegail, тогда задать Винде и Экселю менее параноидальные настройки...

Автор - StoTisteg
Дата добавления - 08.06.2018 в 12:55
StoTisteg Дата: Пятница, 08.06.2018, 14:04 | Сообщение № 20
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
segail, кстати, я заметил, что если файл скачан в архиве и распакован, Эксель не параноит. Может быть, это выход?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
Сообщениеsegail, кстати, я заметил, что если файл скачан в архиве и распакован, Эксель не параноит. Может быть, это выход?

Автор - StoTisteg
Дата добавления - 08.06.2018 в 14:04
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизировать код до версии excel 2010 (Макросы/Sub)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!