Задача переноса графиков, диаграмм, таблиц из Excel в презентацию PowerPoint осложняется тем, что в последних версиях редактора презентаций (2007, 2010) разработчики убрали возможность записи производимых действий в макрос. Поэтому, для настройки внешнего вида презентации под собственные условия, нужно перерыть документацию по VBA для PowerPoint, либо просмотреть множество специализированных форумов. Ниже приведен код примера создания презентации из диаграмм Excel.

Private Sub export_to_pp()
Set pr = CreateObject("PowerPoint.Application")
Set mpr = pr.Presentations.Add
'Определение имени создаваемой презентации
ppName = "Имя_для_презентации"
'Добавление пустого слайда
Set ppSlide = mpr.Slides.Add(mpr.Slides.Count, ppLayoutBlank)
'Цвет фона слайда
ppSlide.Master.Background.Fill.ForeColor.RGB = RGB(200, 200, 200)
'Добавление блока (Orientation, Left, Top, Width, Height)
'функция Application.CentimetersToPoints переводит сантиметры в пиксели
Set TextShape = ppSlide.Shapes.AddTextbox(1, _
   Application.CentimetersToPoints(1.09), _
   Application.CentimetersToPoints(1.2), _
   Application.CentimetersToPoints(22.86), _
   Application.CentimetersToPoints(1.2))
TextShape.TextFrame.TextRange.Text = "Текст надписи"
'Настройка параметров блока с текстом
TextShape.TextFrame.TextRange.Font.Name = "Calibri"
TextShape.TextFrame.TextRange.Font.Size = 18
TextShape.TextFrame.TextRange.Font.Bold = True
'Отключение автоматического подгона размера блока под текст
TextShape.TextFrame.AutoSize = 0
TextShape.Height = Application.CentimetersToPoints(1.2)
TextShape.TextFrame.TextRange.Font.Color = vbWhite
'Вертикальное выравнивание текста по центру
TextShape.TextFrame.VerticalAnchor = msoAnchorMiddle
'Копируем диаграмму в PowerPoint
ListName.ChartObjects("ChartName").Copy
Set chart1 = ppSlide.Shapes.PasteSpecial(ppPastePNG)
   chart1.Left = Application.CentimetersToPoints(1.52)
   chart1.Top = Application.CentimetersToPoints(3.65)
'Копируем таблицу как OLE object
ListName.Range("H51:M60").Copy
Set table1 = ppSlide.Shapes.PasteSpecial(ppPasteOLEObject)
   table1.Left = Application.CentimetersToPoints(1.52)
   table1.Top = Application.CentimetersToPoints(13.72)
'Копируем таблицу как рисунок
ListName.Range("H61:M70").Copy
Set table2 = ppSlide.Shapes.PasteSpecial(ppPasteEnhancedMetafile)
   table2.Left = Application.CentimetersToPoints(13.16)
   table2.Top = Application.CentimetersToPoints(13.72)
Application.CutCopyMode = False
'Сохраняем презентацию в папке с текущей книгой Excel
mpr.SaveAs (ThisWorkbook.Path + "\" + ppName)
mpr.Close
pr.Quit
End Sub

Продолжить чтение »

Теги:
 

При запуске файла из локальной или глобальной сети, содержащего макрос, может появляться данная ошибка. Причём ошибка появляется сразу же после нажатия кнопки «Разрешить редактирование» в сообщении «Защищенный просмотр».

Разрешить редактирование

При повторном запуске файла ошибка уже не возникает (как и не появляется сообщение о «Защищенном режиме»). При выяснении причины проблемы, дебаггер выделяет строчку в коде, отвечающую за активацию одного из листов книги Excel: Sheets("Лист 1").Activate.

Решение: в свойствах файла Excel на вкладке «Общие» нужно нажать кнопку «Разблокировать» рядом с предупреждением:

Этот файл получен с другого компьютера и, возможно, был заблокирован с целью защиты компьютера

Теги:
 

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

Const Num = 0.8 'Значение уровня
Dim objSeries As Series
Dim arrValues()
ActiveWorkbook.Sheets("Имя_листа").ChartObjects("Имя_диаграммы").Activate
arrValues = ActiveChart.SeriesCollection(1).Values
For i = LBound(arrValues) To UBound(arrValues)
   arrValues(i) = Num
Next
Set objSeries = ActiveChart.SeriesCollection.NewSeries
objSeries.Values = arrValues
objSeries.ChartType = xlLine

Источник: Форум программистов

Продолжить чтение »

Полезные команды VBA

15 февраля 2012, VBA, Konstantin

Пополняемый список полезных отрывков кода VBA для выполнения часто востребованных действий в MS Excel.

Служебные команды для ускорения скорости выполнения макроса:

'Отключение отображения выполняемых действий
Application.ScreenUpdating = False
'Предотвращение появления предупреждающих сообщений
Application.DisplayAlerts = False
'Предотвращение появления предупреждения об обновлении связей данных
Application.AskToUpdateLinks = False
'Очистка буфера обмена
Application.CutCopyMode = False

Продолжить чтение »

Теги:
 

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

Утренняя зарядка

Следует решить, что требуется получить от утренних упражнений. Либо проснуться (тогда можно ограничиться одной лишь разминкой), либо повысить тонусу мышц (тогда после разминки следует добавить упражнения на растягивание, легкий бег и возможно силовые упражнения с собственным весом).

Продолжить чтение »

Если после выполнения макроса необходимо отправить в качестве вложения получившийся документ Excel, можно использовать следующий код. Он создаёт письмо с нужным перечнем адресатов в полях «Кому» и «Копия», с указанной темой, текстом и прикреплённым Excel файлом. Остаётся толкьо дописать письмо в случае необходимости и нажать кнопку «Отправить».

Dim OutlookApp As Object, SM As Object
 Set OutlookApp = CreateObject("Outlook.Application")
 Set SM = OutlookApp.CreateItem(olMailItem)
 'SM.SentOnBehalfOfName = "mail@example.ru" 'Поле "От", если нужен другой отправитель
 SM.To = "mail@example.ru" 'Поле "Кому"
 SM.CC = "mail@example.ru" 'Поле "Копия"
 SM.Subject = "Тема письма"
 On Error Resume Next
 SM.Body = "Текст письма"
 SM.Attachments.Add ("C:\Test.xls") 'Адрес вложения
 SM.Display
 Set SM = Nothing
 Set OutlookApp = Nothing

Продолжить чтение »

Теги:
 

Задача: скопировать заданную область из таблицы Excel в текстовый файл. Данные из столбцов должны разделяться знаками табуляции, данные из строк — находиться в отдельных строках.

Продолжить чтение »

Теги:
 

Для автоматического копирования вложений из приходящих в Outlook писем в указанную папку можно воспользоваться правилом, исполняющим ниже прописанный скрипт VBA. Скрипт также модифицирует имя файла в соответствии с датой создания письма. Вариант из примера работает корректно для писем с одним вложением. Для писем с несколькими вложениями нужно изменить код в месте формирования имени файла.

Продолжить чтение »

Теги:
 

Интересные места Москвы

29 января 2012, Места, Konstantin

Здесь собраны интересные, необычные места столицы, которые стоит посетить в этом году.

Бассейн Чайка

Открытый бассейн, построенный в 1957 году специально к международному фестивалю студентов и молодежи и практически не изменившийся с того времени: зимой можно плавать в клубах пара под снегом и не замерзать, летом — купаться и загорать на шезлонгах и круглый год ходить на занятия по аквааэробике, которые ведут бывшие тренеры сборной по синхронному плаванию. Также двери открывают тренажерные залы, танцевальные классы, сауны, ландшафтная площадка для мини-гольфа и теннисные корты.

Продолжить чтение »

Подборка оригинальных, интересных музейных объектов столицы.

ГалочкаБункер — 42

Бункер - 42

Музей Холодной Войны расположен внутри подземного бункера времён холодной войны на глубене 18 этажей, которые нужно будет пройти пешком (лифт есть, но вмещает совсем немного людей). В ходе экскурсии показывают фильм о холодной войне и истории появления и функционирования самого бункера. Затем в ходе прогулки по помещениями объекта можно будет посмотреть на его уменьшенную модель, поиграть в радиста на действующем миниатюрном коммутаторе, подержать автомат Калашникова, облачиться в кастюм химзащиты, поработать с советским сапёрным миноискателем, испытать на себе работу бункера во время ядерного удара и многое другое. Продолжительность обычной экскурсии около часа.

Продолжить чтение »

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

Рекомендации

Не начинайте процедуры в холодное время года. Мало приятного в том, чтобы, едва выбравшись из-под теплого одеяла, облить себя ледяной водой (пусть даже вперемешку с горячей), а потом выйти из ванной, дрожа от холода (после душа нам всегда холодно). Лучше всего привыкать к контрастному душу весной и летом. Но постепенно!

Продолжить чтение »

ЦПКиО им. Горького

Перечень интересных нововведений, новых объектов и реконструкций.

Парк Горького

В центральном парке имени Горького (группы: Facebook Facebook, ВКонтакте ВКонтакте) восстановят советские памятники архитектуры «Ванный Домик«, «Охотничий домик» и обсерваторию в Нескучном саду. Реставрируют Главный вход: его отремонтируют вместе с заборами и реализуют первичный замысел архитектора — устроить на крыше смотровую площадку. В парк переедет главная столичная арт-площадка «Гараж».

Другие места

Новую жизнь вдохнут и в городской сад «Эрмитаж». Отреставрированная летняя эстрада, театр и фонтан сделают его крупным культурным центром. В парке «Красная Пресня» помимо новой концертной площадки появится зона отдых на воде. В саду имени Баумана отреставрируют грот и историческую летнюю эстраду из кинофильма «Покровские ворота». Московский зоопарк в этом году откроет большую оранжерею. Тропические и субтропические растения выставят для осмотра на площади 138 квадратных метров в начале лета. В стеклянной ротонде станут выращивать около тысячи различных видов растений как в почве, так и в специальном бассейне.

Продолжить чтение »

Чтобы при установке антивируса не происходила проверка наличия несовместимых программ, нужно запустить установку с ключем /pSKIPPRODUCTCHECK=1

Например:

C:\Documents and Settings\All Users\Application Data\Kaspersky Lab Setup Files\Kaspersky Anti-Virus 2010 9.0.0.463\Russian\setup.exe /pSKIPPRODUCTCHECK=1

 

 

Идея для Яндекс.Закладок

22 февраля 2010, Идеи, Konstantin

Opera Яндекс.ЗакладкиИдея возникла у меня после прочтения этой новости. Суть в том, чтобы заменить стандартную панель закладок браузера Opera на панель с закладками, сохраненными в сервисе Яндекс.Закладки. Т.о. получается в некотором смысле альтернатива Opera Link, ибо закладки такой панели хранятся в Интернете и потому с какого компьютера их не откроешь, они всегда будут в актуальном состоянии.

Продолжить чтение »

Давно присматриваюсь к HTC Hero. Изучив множество обзоров и форумов, составил список достоинств и недостатков аппарата по отзывам пользователей оного. Подробнее под катом. [В квадратных скобках указаны источники информации]


Продолжить чтение »

Теги:
 

В упомянутой соц. сети можно отмечать на своих фотографиях людей, не зарегистрированных на данном ресурсе. В подписи к такому фото, рядом с именем этого человека, в скобках, можно обнаружить ссылочку, позволяющую найти все фотографии с пользователем и его тёзками. Ссылка имеет следующий формат:

http://vkontakte.ru/photos.php?act=string&name=***

где вместо *** — имя и фамилия.
Если вводить этот адрес в адресной строке браузера Opera, то можно сразу писать кириллицей.
В случае если возникнут проблемы, то для кодирования в URL можно воспользоваться сервисом.
Т.к. пользователь не зарегистрирован, то и скрыть от просмотра фотографии с собой не сможет. Если интересующая фотография окажется защищённой от просмотра, то можно воспользоваться советом. Так, если человек закрыл свои фото от просмотра, и при этом отметил на нём незарегистрированного пользователя, то таким способом можно получить возможность просмотреть эту фотографию.

Ценность данной находки наверно сомнительна, но ради интереса поиграться можно.
Вот пример.

Теги: