Страницы: 1
RSS
Мысли\Идеи, Делимся идеями, новыми открытиями, интересными задачами и решениями и просто оффтопим на здоровье...
 
Решил создать тему, где можно поделится своими мыслями\идеями, и почитать другие. А так же не заходить в узкие рамки конкретных вопросов и не получить от модераторов по шапке, за отклонение от оных (рамок)  :)

Небольшие "открытия" для меня:
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 оформлен по разному. Могу ошибаться, поправьте меня....
Изменено: bedvit - 27.04.2015 17:50:16
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
bedvit написал: Excel 2003 ... галка в соответствующих настройка безопасности MS Outlook
Точно в 2003 есть где галку ставить? Насколько помню такая возможность появилась впервые в 2007 офисе.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, могу ошибаться, сейчас негде посмотреть, уже давно на 2010... если действительно так, исправлю пост (писал по памяти).
«Бритва Оккама» или «Принцип Калашникова»?
 
Эта возможность появилась только начиная с 2007. Плюс, есть ограничения, если компьютер управляется администратором Microsoft Exchange или Microsoft Windows Active Directory Domain Services и администратором в качестве параметров по умолчанию установлен запрет на внесение изменений в параметры безопасности пользователями. Я упоминал об этом в статье: Как отправить письмо из Excel?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
The_Prist, поправил.
С п.2 не встречались? (работа при свернутом окне).
«Бритва Оккама» или «Принцип Калашникова»?
 
Нет. Было бы проще разобраться, если бы Вы выложили код обращения к объектам.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Легко.
Предварительно создав Кнопку (элемент управления формы).
Код
Sub Primer()
    ThisWorkbook.Activate
    ActiveSheet.Shapes.Range(Array("Button 1")).Select
    Selection.Characters.Text = "Primer7"
    Range("a1").Select
End Sub

Работает в любой ситуации в Excel2010, но выдает ошибку в Excel2013, при свернутом окне.
Изменено: bedvit - 28.04.2015 11:41:20
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
The_Prist написал:
Я упоминал об этом в статье: Как отправить письмо из 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
Изменено: bedvit - 28.04.2015 19:18:44
«Бритва Оккама» или «Принцип Калашникова»?
 
Я для примера привел код и написал его прямо в форум, не проверяя. Верно будет так:
Код
Sub Primer()
    ThisWorkbook.Sheets(1).Shapes("Button 1").OLEFormat.Object.Characters.Text = "Primer7"
End Sub
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А так?
Код
Sub Primer()
    ThisWorkbook.Sheets(1).Shapes("Button 1").DrawingObject.Characters.Text = "Primer7"
End Sub
 
и
Код
 ThisWorkbook.Sheets(1).Shapes("Button 1").OLEFormat.Object.Characters.Text = "Primer7"

и
Код
 ThisWorkbook.Sheets(1).Shapes("Button 1").DrawingObject.Characters.Text = "Primer7"

...работают при открытом окне и не работают при скрытом окне в Excel 2013 (x64)

Пока остается только вариант, который я писал выше... предварительно
Код
...Application.WindowState = xlMaximized...
далее обращение к свойствам...
Изменено: bedvit - 29.04.2015 12:04:02
«Бритва Оккама» или «Принцип Калашникова»?
 
Ещё из замеченного:
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 открылся в другой сессии, нужно что бы предыдущая сессия была "занята" расчетом, либо ожиданием ответа пользователя.
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: 1
Наверх