Решил создать тему, где можно поделится своими мыслями\идеями, и почитать другие. А так же не заходить в узкие рамки конкретных вопросов и не получить от модераторов по шапке, за отклонение от оных (рамок)
Небольшие "открытия" для меня: 1. Для рассылки писем посредством VBA (Excel 2007-2013, win7(x64)) (SM = OutlookApp.CreateItem(olMailItem) ... ... SM.send), через MS Outlook (2007-2013) , для того что бы для каждого письма не нажимать подтверждение в отправлении письма, должен стоять антивирус и галка в соответствующих настройка безопасности MS Outlook. Возможно есть и другие способы...
2.Столкнулся с тем, что в Excel 2013 (x64), win7(x64) при свернутом окне книги возникает ошибка доступа к свойствам элементов управления форм при выполнении кода на VBA (чего не было в Excel 2010). Поборол Application.WindowState = xlMaximized. Возможно это связанно с тем, что интерфейс окон в Excel 2010/2013 оформлен по разному. Могу ошибаться, поправьте меня....
Эта возможность появилась только начиная с 2007. Плюс, есть ограничения, если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями. Я упоминал об этом в статье: Как отправить письмо из Excel?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Логично, что не работает. В 2013 иначе организовано обращение к окнам каждой книги(там Ribbon для каждой книги своя). Да и вообще, в большинстве случаев Select лишнее действие, которым только макрорекордер оперирует. Попробуйте так:
Код
Sub Primer()
ThisWorkbook.Sheets(1).Shapes("Button 1").Characters.Text = "Primer7"
End Sub
Sheets(1) - первый по счету лист в книге. 1 можно заменить на его имя в кавычках: Sheets("Лист1")
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist, Пробовал и так делать, раньше, не вышло (может слаб ещё на VBA). На Ваш код то же ругается - object doesn't support this property or method error 438
Ещё из замеченного: 1. 1 ед. измерения размера в VBA Exсel (напр. св-во Height) и пиксель экранный соотносятся как, примерно, 1/1,33 или 0,75/1 2. Перестает срабатывать событие Click на ListBox1 при выбранном свойстве MultiSelect=1-fmMultiSelectMulti В каких то случаях можно заменить на событие "Change". Еще пока не знаю как подойти к решению проблемы периодического "пропадания "пользовательской формы (её скрытием и появлением на экране), при работе макроса с открытием новых окон, и их закрытием в Excel 2013 (видимо все та же проблема отдельного интерфейса для каждого окна, которая влияет на видимость формы).
Ещё из замеченного: При каждом открытии Excel 2010 (меню-->программы) - открывается новая сессия (что в некоторый случаях удобно для независимой работы с файлами). При каждом открытии Excel 2013 - все открываются в одной сессии (определяется, как возможность независимой работы в сессии, не путать с окнами и процессами в диспетчере задач). Что бы Excel 2013 открылся в другой сессии, нужно что бы предыдущая сессия была "занята" расчетом, либо ожиданием ответа пользователя.