Чтобы написать компьютерную программу Вам необходимо знать, во-первых, какой-либо язык программирования. Во вторых у Вас на компьютере должна быть установлена специальная программа, которая скомпилирует написанный Вами код. В-третьих, Вам необходимо будет разработать и записать на бумаге алгоритм Вашей программы, чтобы перед глазами всегда была чёткая цель того, к чему мы идём (по крайней мере, я так всегда делаю, когда пишу более сложные программы).
Язык программирования подойдет любой, но при работе в Excel и написания программ под него я рекомендую использовать Visual Basic for Application (VBA), так как в Excel уже встроена специальный редактор для создания программ в Excel.
Язык программирования мы с Вами, думаю, легко освоим, мне удалось, и у Вас также получится. Поверьте, в Excel программировать намного проще, чем на каком-нибудь C++ или java. Потому что он создан для всех, неважно кто Вы инженер или бухгалтер, VBA создавался для людей, которые пользуются Excel. И если Вы освоили Excel, то следующим логическим шагом будет освоение VBA.
Покажу на примере, как создаётся программа на VBA.
Никакого алгоритма не придумываем, вместо него запишем такую фразу «"Нащ код».
1. Запускаем Excel.
2. Выполняем блиц-команду (зажимаем две клавиши) «Alt» и «F11».
3. Создаём шаблон и сохраняем его.
4. После чего записываем три строчки, при этом строчка, которая начинается с апострофа, является комментарием. Слово «Sub» указывает на начало программы, «program()» - название программы, которое можно изменить, например на «Макрос()».
Словосочетание «End Sub», говорит о том, что здесь программа заканчивается.Вместо строчки «"Наш код» можно записать в будущем наш алгоритм.
Программирование в Excel не такое сложно, как может показаться, необходимо иметь чёткий, записанный желательно на бумаге алгоритм, разрабатывать которые мы вскоре научимся, и некоторые основы VBA (ввод и вывод данных в программу, условия и циклы), для начала этого вполне будет достаточно.
Смотрите также в этом разделе.
Добрый день, уважаемые читатели.
Сегодня я хочу показать как можно связать возможности языка R и офисного пакета MS Excel 2010. Ниже я расскажу о том, как можно расширить функционал встроенного языка VBA с помощью функций R, а поможет мне в этом надстройка RExcel . Инструкцию по его установке можно без проблем найти в сети или на офф. сайте.
Library(zoo) agg_price_func <- function(x) { y <- zoo(x$OPEN, as.Date(as.character(x$DATE),"%Y%m%d")) new_y <- aggregate(y, as.yearmon, mean) plot(new_y) return (new_y) }
Разберемся что делает данный код.
Сначала загружаем библиотеку zoo , которая понадобиться нам для работы с временными рядами.
Затем создаем функцию, которая выполняет следующее:
Sub call_r_func() RInterface.PutDataframe "open_price", Range("USD!A1:C535") RInterface.RRun "library(zoo)" RInterface.RRun "price <- zoo(open_price$OPEN, as.Date(as.character(open_price$DATE),""%Y%m%d""))" RInterface.RRun "agg_price <- aggregate(price, as.yearmon, mean)" RInterface.RRun "plot(agg_price)" RInterface.InsertCurrentRPlot Range("OPEN_PRICE!A1"), widthrescale:=0.5, heightrescale:=0.5, closergraph:=True End Sub
Как можно заметить в данной процедуре и используются 3 функции из rinterface :
Sub call_r_impotr_func_without_print() RInterface.RunRFile "D:/agg_price.R" RInterface.RunRCall "agg_price_func", AsSimpleDF(Range("USD!A1:C535")) RInterface.InsertCurrentRPlot Range("OPEN_PRICE!H1"), widthrescale:=0.5, heightrescale:=0.5, closergraph:=True End Sub
В данном коде появились 3 новых функции:
Sub call_r_impotr_func_with_print() RInterface.RunRFile "D:/agg_price.R" RInterface.GetRApply "agg_price_func", Range("OPEN_PRICE!A19"), AsSimpleDF(Range("USD!A1:C535")) RInterface.InsertCurrentRPlot Range("OPEN_PRICE!D19"), closergraph:=True End Sub
У данной процедуры есть лишь одно небольшое отличие от предыдущей, а именно вместо
RunRCall вызывается GetRApply .
Отличие данной функции в том, что она может возвращать результат (return (...)
не игнорируется), а не только выполнять како-то код. Хотя тем, кто знаком с определение процедуры и функции, данное отличие понятно.
Кроме того, у GetRApply после параметра с именем функции, также необходимо указать диапазон ячеек, куда будут выводиться значения, получившиеся при работе функции.
Плюсы и минусы данного подхода такие же, как и у предыдущего.
Теги: Добавить метки
Знаете ли вы, что в Excel реализован инструмент перевода текста на другой язык. С помощью мини-переводчика вы можете перевести фразу, абзац или весь файл, написанный на другом языке. Данный элемент использует функционал программы Microsoft Translator, который по умолчанию содержится в офисных приложениях Microsoft. В сегодняшней статье я опишу, как воспользоваться данным функционалом. Помимо этого, мы рассмотрим, как с помощью функций ВЕБСЛУЖБА и ФИЛЬТР.XML реализовать Яндекс переводчик в нашей Excel книге.
Итак, у вас имеется текст, который необходимо перевести на другой язык. В нашем случае, я хочу перевести текст, находящийся в ячейках A1:A3 с русского на английский. Переходим во вкладку Рецензирование в группу Язык , щелкаем по кнопке Перевод. В правой части книги появится панель Справочные материалы, в которой необходимо указать переводимый текст и языки исходный и на который перевести.
Чтобы задать текст для перевода, есть два пути. Первый, банальный, ручками набиваем текст в поле Искать , указываем язык перевода, жмем кнопку со стрелкой, слева от поля, ждем пару секунд пока Microsoft Translator подберет нужные слова и наслаждаемся результатом перевода в этой же панельке.
Второй вариант более технологичный и предполагает, что текст, который требуется перевести, уже имеется на листе. Для этого, удерживая клавишу Alt, щелкаем по ячейке с переводимым текстом, в поле Искать панели Справочные материалы вы увидите фразу с выбранной ячейки, а ниже ее перевод. Если вы нажмете кнопку Вставить , находящуюся под переводом, Excel заменит исходный текст в ячейке на переведенный.
Данный инструмент прост в обращении и особенно выручает, если в Excel книге попадаются незнакомые слова.
Способ, описанный выше, не требует каких-либо особых навыков владения Excel, достаточно один раз воспользоваться им, и все станет понятно. Способ, описанный ниже, посложнее и тем интереснее, потребует от пользователей некоторой сноровки.
Итак, как я уже писал в статье об , в Excel 2013 реализован инструмент импорта данных в формате XML, с помощью функции . Первая функции использует API веб службы для выгрузки данных из интернета, вторая – возвращает конкретную информацию из выгруженного XML. Для реализации задуманной идеи в Excel мы воспользуемся переводчиком Яндекс, который имеет свой API. Переходим на страницу API Перевода Яндекс , где можно прочитать всю документацию и правила оформления результатов перевода, находим пункт Получите бесплатный API -ключ и щелкаем по нему (ВНИМАНИЕ! Чтобы получить ключ, у вас должен иметься профиль Яндекс).
Далее необходимо заполнить форму получения API-ключа, где надо указать от какой службы вам требуется ключ, прочитать пользовательское соглашение, поставить галочку о прочтении и нажать кнопку Получить API -ключ. Выглядит он следующим образом.
Данный ключ будет использоваться, как один из обязательных аргументов в передаваемом URL запросе к Яндекс службам. Следующий обязательный аргумент – это текст, который требуется перевести и третий аргумент – направление перевода, может задаваться как пара кодов языков (например, ru-en), либо в виде кода конечного языка (например, ru). Подробнее о синтаксисе URL запроса можете почитать на сайте Яндекс .
Таким образом, два обязательных аргумента у вас будут практически неизменными – ключ и язык перевода, а текст перевода будет переменным аргументом.
Важный момент, на который следует обратить внимание – прежде чем передавать запрос в Яндекс, необходимо изменить кодировку текста запроса, на понятный для веб службы язык. Для этого необходимо воспользоваться функцией КОДИР.URL, которая возвращает строку, зашифрованную в виде URL-адреса. К примеру, текст Самара будет выглядеть как %D0%A1%D0%B0%D0%BC%D0%B0%D1%80%D0%B0.
Добавив немного лоска нашем файлу, наш переводчик принял вполне удобочитаемый вид.
Язык программирования Visual Basic, встроенный в Excel, обладает всеми возможностями базового языка высокого уровня и имеет множество расширений, позволяющих получить доступ ко всем возможностям Excel. Поэтому будем называть язык программирования языком Excel Visual Basic (EVB).
Макросы
Макрос – это записанная последовательность команд и действий, сохранённая под уникальным именем, которую может выполнить Excel.
Excel Visual Basic – это язык макросов, т.е. вы можете писать программу на этом языке традиционным образом, а можете записать макрос с помощью команды Сервис – Макрос и использовать текст макроса наравне с остальным текстом вашей программы.
Microsoft Excel имеет встроенное средство для записи макроопределений – макрорекордер. Он записывает последовательность нажатий клавиш и перемещений мыши в виде операторов языка Visual Basic. В дальнейшем макрос можно редактировать, как обычный текстовый файл.
Тексты программ на языке Visual Basic хранятся в специальных листах рабочей книги. Эти листы носят название модулей .
Создание макроса автоматически записанного при заполнении таблицы Excel
1. Начать запись макроса можно через команду меню Сервис – Макрос – Начать запись или путём нажатия на кнопку с панели инструментов Visual Basic, которая вызывается посредством команды меню Вид – Панели инструментов – Visual Basic.
2. Далее появится диалоговое окно Запись макроса, по умолчанию Excel присваивает первому макросу имя Макрос1. Вы можете дать макросу другое имя, которое отражает выполняемые макросом действия. Введите в поле Имя макроса имя и нажмите на кнопку ОК .
3. Произвести необходимые действия, операции (например, форматирование ячеек или построение диаграммы, и т.д.).
4. Остановить запись можно через команду меню Сервис – Макрос – Остановить запись или путём нажатия на кнопку с панели инструментов Visual Basic.
Пример:
" Макрос записан 13.11.2002
ActiveCell.FormulaR1C1 = “=TODAY()”
Выполнение макроса
Чтобы выполнить макрос, выберите команду меню Сервис – Макрос – Макросы.
Откроется диалоговое окно со списком макросов. Выбрав нужный макрос, щёлкните по кнопке Выполнить .
Просмотр, редактирование и изменение макроса
Просмотр макроса осуществляется с помощью редактора Visual Basic. Для того, чтобы войти в редактор, выполнить Сервис – Макрос – Редактор Visual Basic.
Редактор Visual Basic представляет собой отдельное графическое окно, содержащее своё меню и панели инструментов.
Для просмотра содержимого книги в окне редактора необходимо открыть окно проекта. Через команду меню View – Project Explorer (Вид – Окно проекта) открывается окно проектаProject – VBA Project, в котором в папке Modyles открывается нужный модуль.
Внести изменения в макрос можно также через команды меню Сервис – Макрос – Макросы. В появившемся диалоговом окне Макросы, выбрать нужный макрос, далее нажать на кнопку Войти или Изменить .
Кнопки
Для удобства вызова макроса на выполнение макросу можно назначить кнопки:
§ Кнопка на панели инструментов . Вид – Панели инструментов – Настройка. Среди Команд выбрать Макросы – Настраиваемая кнопка и перенести её с помощью мыши на любую панель инструментов. Для работы с этой кнопкой нажать правую кнопку мыши (Назначить макрос). Редактирование кнопки возможно только в режиме настройки.
§ Командная кнопка . Вид – Панели инструментов – Формы . В панели инструментов Формы нужно выбрать кнопку – Кнопка. С помощью мыши нарисовать кнопку и правой кнопкой мыши Назначить макрос.
§ Графический объект. Вставка – Рисунок – Картинки . Правой кнопкой мыши Назначить макрос.
Принципы объектно-ориентированного программирования
В язык Visual Basic добавлены элементы и средства объектно-ориентированного программирования (ООП). ООП – это событийный язык программирования, ориентированный на работу с объектами.
Объекты
Объект – это то, чем вы управляете с помощью программы на языке Excel Visual Basic:
§ Cell (ячейка),
§ Range (диапазон),
§ Chart (диаграмма),
§ WorkSheet (рабочий лист),
§ WorkBook (рабочая книга).
Понятие объекта включает в себя параметры объекта (свойства) и программные средства для работы с ним (методы). В программе на языке Visual Basic необходимо идентифицировать объект, прежде чем применять к нему методы или изменять значения его свойства.
Методы
Метод – это программа, которая выполняет определённые действия над объектом.
Свойства
Свойства – это совокупность характеристик и атрибутов, описывающих объект.
Синтаксис: | Объект. Свойство = выражение |
Пример: | ActiveWindow. Heigt = HSize |