Цель предлагаемого задания:
Активизировать и интегрировать
разрозненные знания по отдельным темам,
полученные при изучении электронных таблиц;
провести плавное “погружение” учащихся в
изучение нового серьезного материала по
созданию макросов в приложении Excel и расшифровки команд, полученных с
помощью MacroRecordera, и хранящихся
в форме программ на языке VBA; ввести понятие объекта и метода и
выполнить при этом задание, которое впоследствии
может послужить примером для разработки
автоматизированной информационной системы.
Прежде чем приступить к изучение
объектно-ориентированного языка VBA я предлагаю изучить создание
макросов и научиться применять их на следующей
задаче.
Предложенную задачу можно представит
как объединение 4 задач:
1. Хранение и обработка числовых данных
в электронной таблице с применением
относительных и абсолютных ссылок, а также
математических и логических функций. В своем примере я привожу задачи по
работе туристического агенства, отеля, книжного
холдинга и фабрики по пошиву верхней одежды.
2. Проведение статистической обработки
полученных результатов с использованием
специальных встроенных функций. При
использовании статистических функций мы их
записываем с помощью MacroRecordera,
то есть, сохраняем в виде процедуры.
3. Построение диаграмм и графиков по
полученным расчетным данным в таблицах.
4. Создание
пользовательского интерфейса (Меню),
позволяющего объединить все решенные задачи (с
применением макросов).
Ход урока
Объектно-ориентированный
язык программирования
Visual Basic for Application (VBA) является
версией языка
Visual Basic и предназначен
для использования
в среде приложений Microsoft Office (Word, Excel, Access и др.)
Существует достаточно простая
возможность создания программы (макроса) на
языке VBA с использованием
MacroRecorder.
MacroRecorder – это
транслятор, который переводит все действия
пользователя с момента запуска MacroRecorder до окончания записи макроса на язык VBA.
Макрос –
это имеющая имя последовательность заданных
пользователем команд, хранящаяся в форме
программы на языке VBA.
I этап — Создание
пользовательского интерфейса
Подготовка листа Excel для
дальнейшей работы:
1. В рабочей книге должно быть
5 листов. Переименуйте листы следующим образом:l Лист1 — “Меню”
l Лист2 – “Отель”
l Лист3 – “Фабрика”
l Лист4 – “Холдинг”
l Лист5 – “Турагенство”
2. С помощью коллекции WordArt подготовьте на созданном листе
“Меню” надписи “Меню” и “4 задания”.3. Вызовите на экран
дополнительную панель “Рисование”.4. Используя элемент “Автофигура”
нарисуйте на листе одну кнопку (всего кнопок
будет 4).5. Используя
контекстно-зависимое меню этого объекта, добавьте надпись на кнопке “Турагенство”.6. Измените, дизайн кнопки, т.е. поменяйте фон
кнопки, а также начертание, название шрифта и
размер букв надписи на кнопке.
Рис. 1. Так выглядит пользовательский
интерфейс “4 задания”
II этап —
Создание макросов.
1. Установим курсор на листе
“Меню”.
2. Активизируем MacroRecoder с помощью команды Сервис-Макрос-Начать
запись.
Появится диалоговое окно “Запись
макроса”. Это диалоговое окно позволяет
задать параметры макроса.
Рис. 2. Диалоговое окно
“Запись макроса”
По умолчанию макросам
присваиваются имена Макрос1, Макрос2 и т.д. Чтобы
легче было распознать макрос, лучше присвоить
ему имя, поясняющее его назначение. Присвоим
макросу имя “Турагенство” и нажмем кнопку Ок.
Появится плавающая панель инструментов с
кнопкой “Остановить запись”. Теперь все производимые нами
действия будут записываться до тех пор, пока не
будет нажата эта кнопка.
Не выполняйте никаких лишних
действий. Все ваши действия фиксируются и
записываются. Надо выполнить только одно
действие.
l Перейдите на лист “Турагенство”.
Остановите запись макроса,
нажав на кнопку “Остановить
запись”.
3. Просмотрите записанную
программу. Для этого выполните команду Сервис-Макрос-Макросы.
Созданная программа
записалась в Модуле1.
Рис. 3. Главное окно
редактора VBA
Таким образом, MacroRecorder записал нужную нам программу из
одной строки:
Sheets(“Турагенство”).Select – выбрать лист “Турагенство”.
III этап —
“Оживление” кнопок.
1. Для того чтобы эта
программа выполнялась, то
есть, происходил переход на
лист “Турагенство” при нажатии на одноименную
кнопку, выполните следующие действия:
l закройте окно редактора VBA;
l на листе
“Меню” вызовите контекстно-зависимое меню на
автофигуре с надписью “Турагенство”
Рис. 4.
Контекстно-зависимое меню автофигуры
“Турагенство”
l в появившемся меню выберите команду
“Назначить макрос”
l в
окне “Назначить макрос объекту”
выберите имя макрос “Турагенство” и
подтвердите выполнение операции, нажав на кнопку
ОК.
l снимите
выделение с кнопки и проверьте ее
работоспособность, щелкнув по ней.
2. Создайте и оживите оставшиеся
кнопки пользовательского интерфейса.
IV этап Решение задачи на листе
“Турагенство”
Постановка задачи
Сформируйте и заполните накопительную
ведомость по продаже путевок туристической
фирмой «Пять континентов» за май 2003 г.
Фирма имеет семь постоянных маршрутов.
Цена каждого маршрута и количество проданных
путевок представлены в таблице. Если количество
проданных путевок в месяц по каждому из
маршрутов более 50, то путевки, проданные сверх
этих пятидесяти, реализуются со скидкой в 15% от
указанной цены.
Рассчитайте по формулам стоимость
всех проданных путевок; количество
проданных путевок со скидкой; для путевок, проданных со скидкой, рассчитайте размер скидки в евро и
итоговую выручку по каждому туру.
Подведите итог за месяц по всем графам
таблицы: количество проданных путевок фирмой за
месяц, стоимость всех проданных путевок без
учета скидки, общая сумма скидки, итоговая
выручка за месяц по туристической фирме. Расчеты
производите в евро.
Определите максимальное количество
путевок, проданных со скидкой.
Определите минимальную стоимость
тура.
Рассчитайте среднюю скидку за
проданные путевки.
Продажа путевок туристической фирмой
«Пять континентов» за декабрь
2003 г.
Наимено-вание маршрута
Цена за тур (в евро)
Кол-во проданных путевок
Стоимость проданных путевок (в евро)
Количество путевок, проданных со скидкой
Размер скидки за проданные путевки (в евро)
Итоговая выручка (в евро)
Египет 350
60
Испания 450
20
Кипр 290
25
Чехия 450
80
Греция 560
27
Англия 670
55
Мексика 1390
60
Итого: Сумма
Сумма
Сумма
Сумма
Сумма
Постройте диаграммы:
1. Круговую
диаграмму по графе «Количество проданных
путевок».2. Гистограмму по
графе «Итоговая выручка».
Требования:
1. Процент скидки (15%) и
пограничное количество путевок (50) вынесите в
отдельные ячейки с комментариями.
2. При расчете
количества путевок, проданных со скидкой,
используйте логическую функцию ЕСЛИ.
3. Создайте макросы для
расчета максимального, минимального и среднего
значений. Нарисуйте автофигуры. Привяжите
созданные макросы к этим автофигурам. А также
создайте еще один дополнительный макрос и кнопку
для очистки ячеек с результатами вычислений этих
значений.
4. На листе
“Турагенство” создайте кнопку для перехода на
лист “Меню”.
5. Создайте копию листа “Турагенство”.
Переименуйте лист в “Формулы” и выведите в
созданной таблице формулы расчета.
Образец выполненной работы
представлен на рис. 5. Работу выполнила ученица
Ломоносовской школы 10 класса “В” Дубровская
Ксения.
Рис. 5. Выполненная работа
Проверка выполненного задания
При проверке выполненного задания
учащиеся должны представить:
1. Таблицу со
значениями.
2. Таблицу с формулами
(рис.6). Уметь объяснить работу
формулы ЕСЛИ и применение абсолютной адресации в
формулах.
Рис. 6. Выполненная работа с формулами
3. Показать текст
макросов в редакторе VBA, созданных при нахождении
статистических показателей.
Sub Средняя_цена()
Range(«C14»).Select
ActiveCell.FormulaR1C1 = «=AVERAGE(R[-11]C[3]:R[-5]C[3])»
End Sub
Sub Максимум ()
Range(«A14»).Select
ActiveCell.FormulaR1C1 = «=MAX(R[-11]C[4]:R[-5]C[4])»
End Sub
Sub Минимум()
Range(«B14»).Select
ActiveCell.FormulaR1C1 = «=MIN(R[-11]C:R[-5]C)»
End Sub
Sub Очистка()
Range(«A14:C14»).Select
Selection.ClearContents
End Sub
4. Уметь объяснить адресацию ячеек в Excel. Для ссылок на ячейки используются
два формата. Формат А1 (ссылка
состоит из имени строки и номера столбца). Формат R1C1
– этот формат мы видим в
созданных макросах при нахождении среднего
значения, максимума и минимума. В формате R1C1, после буквы “R”
указывается номер строки ячейки, после буквы
“С” — номер столбца. Например, абсолютная ссылка R1C1 эквивалента абсолютной ссылке $A$1 для формата А1. Для задания
относительной ссылки указывается смещение по
отношению к активной ячейке. Смещение
указывается в квадратных скобках. Знак указывает
направление смещения. Например, R[-11]C:R[-5]C) (фрагмент адресации взят из нашего
макроса Минимум). Активной
ячейкой в этом макросе является ячейка B14.
R[-11]C – обозначает
относительную ссылку на ячейку, расположенную на
11 строк выше в том же столбце, т. е. ячейку B3.
R[-5]C) — обозначает относительную
ссылку на ячейку, расположенную на 5 строк выше в том же столбце, т. е.
ячейку B9. Таким образом, формируется диапазон В3:В9 для
нахождения минимального
значения.
На остальных листах также должны быть
выполнены аналогичные задания. Условия задания в
электронной таблице подбираются созвучно именам
листов в созданной книге.
Например:
l реализация книг издательствами
холдинга «Спутник» по кварталам за 2003 год и т.д.;
Этот материал можно использовать на
факультативных занятиях, в классах с углубленным
изучением информационных технологий, для
выполнения проектов и курсовых работ.
Темой для проекта можно выбрать
создание информационной системы
“Торгово-закупочное предприятие”, в котором
применение макросов необходимо, также как и
написание программ на языке VBA. На рис.7 показан пользовательский
интерфейс для названного проекта.
Рис. 7. Меню
“Торгово-закупочное предприятие”
Рис.8 . Таблица с формулами
Продажа путевок туристической |
||||||||
Наименование |
Цена за тур (в ?) |
Кол-во проданных |
Стоимость |
Кол-во путевок, |
Размер скидки за |
Итоговая выручка |
Скидка |
|
Египет |
350 |
60 |
=B3*C3 |
=ЕСЛИ(C3>$I$9;C3-$I$9;0) |
=B3*E3*$I$3 |
=D3-F3 |
0,15 |
|
Испания |
450 |
20 |
=B4*C4 |
=ЕСЛИ(C4>$I$9;C4-$I$9;0) |
=B4*E4*$I$3 |
=D4-F4 |
||
Кипр |
290 |
25 |
=B5*C5 |
=ЕСЛИ(C5>$I$9;C5-$I$9;0) |
=B5*E5*$I$3 |
=D5-F5 |
Пограничное |
|
Чехия |
450 |
80 |
=B6*C6 |
=ЕСЛИ(C6>$I$9;C6-$I$9;0) |
=B6*E6*$I$3 |
=D6-F6 |
||
Греция |
560 |
27 |
=B7*C7 |
=ЕСЛИ(C7>$I$9;C7-$I$9;0) |
=B7*E7*$I$3 |
=D7-F7 |
||
Англия |
670 |
55 |
=B8*C8 |
=ЕСЛИ(C8>$I$9;C8-$I$9;0) |
=B8*E8*$I$3 |
=D8-F8 |
||
Мексика |
1390 |
60 |
=B9*C9 |
=ЕСЛИ(C9>$I$9;C9-$I$9;0) |
=B9*E9*$I$3 |
=D9-F9 |
50 |
|
Итого: |
=СУММ(C3:C9) |
=СУММ(D3:D9) |
=СУММ(E3:E9) |
=СУММ(F3:F9) |
=СУММ(G3:G9) |
Grilled Giardiniera-Stuffed Steak Sandwich
This rolled flank steak is inspired by the Italian beef sandwich, a Chicago delicacy typically consisting of chopped thin slices of roast beef stuffed…
Provided by Food Network Kitchen
Mapo Potato
Let’s be clear: Nothing surpasses the hearty deliciousness of a traditional mapo tofu. But for those days when you find yourself without soft tofu in the…
Provided by Hetty McKinnon
Chili
This is a spicy, smoky and hearty pot of chili. It’s the kind of chili you need after a long day skiing — or hibernating. To create a rich and thick sauce,…
Provided by Ali Slagle
Banket
This recipe is from my mother. It is the one she taught me with a slight tweak. In my home on the holidays one way to show someone or a family they were…
Provided by Jena Lewis
Moroccan Nachos
This Moroccan twist on the much-loved appetizer features kefta, a ground beef (or lamb) mixture seasoned with parsley, cilantro, mint, paprika and cumin,…
Provided by Nargisse Benkabbou
Peanut Butter Brownie Cups
I’m not a chocolate fan (atleast not the kind made in the U.S.), but I LOVE peanut butter and chocolate and this hit the spot. I found the recipe in 2007…
Provided by AmyZoe
Banana Cream Pudding
This fabulous version of the favorite Southern dessert boosts the banana flavor by infusing it into the homemade vanilla pudding, in addition to the traditional…
Provided by Martha Stewart
Lemon Russian Tea Cakes
I love lemon desserts,these are a simple cookie I can make quickly. The recipe is based on the pecan Russian tea cakes.I don’t like lemon extract,instead…
Provided by Stephanie L. @nurseladycooks
Easy Churros with Mexican Chocolate Sauce
Forgo the traditional frying — and mixing up the batter! — for this Latin American treat. Instead, bake store-bought puff pastry for churros that are…
Provided by Martha Stewart
Easy Lasagna
Everyone loves lasagna. It’s perfect for feeding a big crowd and a hit at potlucks. But most people reserve it for a weekend cooking project since it can…
Provided by Food Network Kitchen
Grilled Vegetables Korean-Style
Who doesn’t love grilled vegetables — the sauce just takes them over the top.
Provided by Daily Inspiration S @DailyInspiration
Outrageous Chocolate Cookies
From Martha Stewart. I’m putting this here for safe keeping. This is a chocolate cookie with chocolate chunks. Yum! Do not over cook this cookie since…
Provided by C. Taylor
CERTO® Citrus Jelly
A blend of freshly squeezed orange and lemon juices puts the citrusy deliciousness in this CERTO Citrus Jelly.
Provided by My Food and Family
Previous
Next
CREATE A USER INTERFACE (UI) MACRO — MICROSOFT SUPPORT
WebStep 1: Browse or search for a macro action The first step in adding an action is finding it in the Add New Action drop-down list or in the Action …
From support.microsoft.com
Label Caption, Visible, Fore Color, Back Color
Tab Control Visible
Object or control Properties that you can use
Step 1: Browse or search for a macro action The first step in adding an action is finding it in the Add New Action drop-down list or in the Action …»>
See details
CREATE A MEAL PLANNER IN EXCEL (IN EASY STEPS) — EXCEL EASY
WebHere’s what we are trying to achieve: 1. On the second sheet, create the following named ranges. Note: you can add 7 more breakfast meals in the future without changing the range address. 2. On the first sheet, select …
From excel-easy.com
Here’s what we are trying to achieve: 1. On the second sheet, create the following named ranges. Note: you can add 7 more breakfast meals in the future without changing the range address. 2. On the first sheet, select …»>
See details
BUILDING A GUI TO READ, MODIFY AND WRITE AN EXCEL FILE, …
WebMay 15, 2009 Building a GUI to Read, Modify and Write an Excel File, Part 1. From the series: Building a GUI to Read, Modify and Write an Excel File. ( Originally posted on Doug’s MATLAB Video Tutorials blog.) Planning the GUI.
From mathworks.com
May 15, 2009 Building a GUI to Read, Modify and Write an Excel File, Part 1. From the series: Building a GUI to Read, Modify and Write an Excel File. ( Originally posted on Doug’s MATLAB Video Tutorials blog.) Planning the GUI.»>
See details
HOW TO CREATE USERFORMS IN EXCEL? — SIMPLILEARN.COM
WebFeb 23, 2023 To enable developer tools, navigate to the File menu in excel. Select the options button in the bottom left corner. This will navigate you to the Excel Options. Here, choose the customize ribbon option and …
From simplilearn.com
Feb 23, 2023 To enable developer tools, navigate to the File menu in excel. Select the options button in the bottom left corner. This will navigate you to the Excel Options. Here, choose the customize ribbon option and …»>
See details
GET CALORIE AND NUTRITION FACTS IN EXCEL — MICROSOFT SUPPORT
WebSelect these cells and go to Insert > Table to create a table. Add a header column if desired. Note: While creating a table isn’t required, we recommend putting your text in a table for the best experience. With the …
From support.microsoft.com
Select these cells and go to Insert > Table to create a table. Add a header column if desired. Note: While creating a table isn’t required, we recommend putting your text in a table for the best experience. With the …»>
See details
CREATE CUSTOM MENUS AND SHORTCUT MENUS BY USING …
WebClick File > Options. In the Access Options dialog box, click Current Database. Under Ribbon and Toolbar Options, in the Shortcut Menu Bar box, type the name of the macro that you created in Step 2 (in this …
From support.microsoft.com
Click File > Options. In the Access Options dialog box, click Current Database. Under Ribbon and Toolbar Options, in the Shortcut Menu Bar box, type the name of the macro that you created in Step 2 (in this …»>
See details
MAKE YOUR OWN GUI(GRAPHICAL USER INTERFACE) WITHOUT …
WebJust open Microsoft Excel. Press» Alt + F11 » that will open a Visual Basic window. Select UserForm from Insert menu. That will open a User form window like above Add Tip Ask …
From instructables.com
Estimated Reading Time 5 mins
Just open Microsoft Excel. Press» Alt + F11 » that will open a Visual Basic window. Select UserForm from Insert menu. That will open a User form window like above Add Tip Ask …»>
See details
PYTHON — HOW TO CREATE A SIMPLE GUI FOR TAKING 2 EXCEL FILES AND …
WebMay 4, 2020 import PySimpleGUI as sg sg.theme (‘Light Blue 2’) layout = [ [sg.Text (‘Enter 2 files to comare’)], [sg.Text (‘File 1′, size= (8, 1)), sg.Input (key=’Input_1’), sg.FileBrowse …
From stackoverflow.com
May 4, 2020 import PySimpleGUI as sg sg.theme (‘Light Blue 2’) layout = [ [sg.Text (‘Enter 2 files to comare’)], [sg.Text (‘File 1′, size= (8, 1)), sg.Input (key=’Input_1’), sg.FileBrowse …»>
See details
PYTHON 101 – HOW TO CREATE A GRAPHICAL USER INTERFACE
WebSep 29, 2021 Go ahead and create a new file named hello_wx.py and add this code to it: # hello_wx.py import wx app = wx.App(False) frame = wx.Frame(parent=None, title=’Hello …
From blog.pythonlibrary.org
Sep 29, 2021 Go ahead and create a new file named hello_wx.py and add this code to it: # hello_wx.py import wx app = wx.App(False) frame = wx.Frame(parent=None, title=’Hello …»>
See details
ADD CUSTOM UI TO A SPREADSHEET DOCUMENT (OPEN XML SDK)
WebApr 4, 2022 Create a new workbook. Press Alt+F11 to open the Visual Basic Editor. On the Insert tab, click Module to create a new module. Add code such as the following to …
From learn.microsoft.com
Apr 4, 2022 Create a new workbook. Press Alt+F11 to open the Visual Basic Editor. On the Insert tab, click Module to create a new module. Add code such as the following to …»>
See details
IS IT POSSIBLE TO PUT A CUSTOM GUI ON TOP OF AN EXCEL …
WebCode your GUI with WinForms/WPF and .NET; invoke excel in the background to be your calculation engine. Pretty ugly (and probably slow) solution, though. Share Follow …
From stackoverflow.com
Code your GUI with WinForms/WPF and .NET; invoke excel in the background to be your calculation engine. Pretty ugly (and probably slow) solution, though. Share Follow …»>
See details
MICROSOFT EXCEL: SIMPLE GUI IN VBA — STACK OVERFLOW
WebJun 13, 2014 Create a new User Form. Add a text box. Add a button. Double click on the button and you will automatically be taken to something called «Private Sub …
From stackoverflow.com
Jun 13, 2014 Create a new User Form. Add a text box. Add a button. Double click on the button and you will automatically be taken to something called «Private Sub …»>
See details
HOW TO CREATE A GUI USING PYTHON TO TAKE USER INPUT AND INSERT IT …
WebNov 27, 2019 1 Answer Sorted by: 3 You can create GUI using python tkinter, you can also create input fields using this library and accept the entered value. After this you can …
From stackoverflow.com
Nov 27, 2019 1 Answer Sorted by: 3 You can create GUI using python tkinter, you can also create input fields using this library and accept the entered value. After this you can …»>
See details
HOW TO CREATE EXCEL GUI (NO CODE) OR PYTHON GUI (6 LINES
WebJul 16, 2018 How to Create Excel GUI (no code) or Python GUI (6 lines) Windows desktop apps using Virtual Forms! Virtual Forms — Excel Database Forms 1.14K …
From youtube.com
Jul 16, 2018 How to Create Excel GUI (no code) or Python GUI (6 lines) Windows desktop apps using Virtual Forms! Virtual Forms — Excel Database Forms 1.14K …»>
See details
HOW TO MAKE A GUI INTERFACE FOR AN EXCEL WORKBOOK
WebFeb 27, 2014 How to make a Gui interface for an excel workbook GRODZ Feb 27, 2014 G GRODZ New Member Feb 27, 2014 #1 I work with an excel spread sheet that has 19 …
From chandoo.org
Feb 27, 2014 How to make a Gui interface for an excel workbook GRODZ Feb 27, 2014 G GRODZ New Member Feb 27, 2014 #1 I work with an excel spread sheet that has 19 …»>
See details
HOW TO CREATE USER FORMS USING VBA IN EXCEL | CODEMENTOR
WebDec 22, 2016 Go to File (top left of Excel). Select «Options» at the bottom. Select Customize Ribbon in the Excel Options window. Under Main Tabs, check the Developer …
From codementor.io
Dec 22, 2016 Go to File (top left of Excel). Select «Options» at the bottom. Select Customize Ribbon in the Excel Options window. Under Main Tabs, check the Developer …»>
See details
MAKING A WEB-BASED INTERFACE FOR A WORKBOOK IN EXCEL
WebFeb 3, 2017 I’d like to explain that macro doesn’t work in Excel Online, so it also doesn’t work in the Excel Access Part in SharePoint Online. For your reference: Work …
From answers.microsoft.com
Feb 3, 2017 I’d like to explain that macro doesn’t work in Excel Online, so it also doesn’t work in the Excel Access Part in SharePoint Online. For your reference: Work …»>
See details
import
pandas as pd
from
tkinter
import
*
from
tkinter
import
filedialog
from
tkinter
import
messagebox as msg
from
pandastable
import
Table
from
tkintertable
import
TableCanvas
class
csv_to_excel:
def
__init__(
self
, root):
self
.root
=
root
self
.file_name
=
''
self
.f
=
Frame(
self
.root,
height
=
200
,
width
=
300
)
self
.f.pack()
self
.message_label
=
Label(
self
.f,
text
=
'GeeksForGeeks'
,
font
=
(
'Arial'
,
19
,
'underline'
),
fg
=
'Green'
)
self
.message_label2
=
Label(
self
.f,
text
=
'Converter of CSV to Excel file'
,
font
=
(
'Arial'
,
14
,
'underline'
),
fg
=
'Red'
)
self
.convert_button
=
Button(
self
.f,
text
=
'Convert'
,
font
=
(
'Arial'
,
14
),
bg
=
'Orange'
,
fg
=
'Black'
,
command
=
self
.convert_csv_to_xls)
self
.display_button
=
Button(
self
.f,
text
=
'Display'
,
font
=
(
'Arial'
,
14
),
bg
=
'Green'
,
fg
=
'Black'
,
command
=
self
.display_xls_file)
self
.exit_button
=
Button(
self
.f,
text
=
'Exit'
,
font
=
(
'Arial'
,
14
),
bg
=
'Red'
,
fg
=
'Black'
,
command
=
root.destroy)
self
.message_label.grid(row
=
1
, column
=
1
)
self
.message_label2.grid(row
=
2
, column
=
1
)
self
.convert_button.grid(row
=
3
, column
=
0
,
padx
=
0
, pady
=
15
)
self
.display_button.grid(row
=
3
, column
=
1
,
padx
=
10
, pady
=
15
)
self
.exit_button.grid(row
=
3
, column
=
2
,
padx
=
10
, pady
=
15
)
def
convert_csv_to_xls(
self
):
try
:
self
.file_name
=
filedialog.askopenfilename(initialdir
=
'/Desktop'
,
title
=
'Select a CSV file'
,
filetypes
=
((
'csv file'
,
'*.csv'
),
(
'csv file'
,
'*.csv'
)))
df
=
pd.read_csv(
self
.file_name)
if
(
len
(df)
=
=
0
):
msg.showinfo(
'No Rows Selected'
,
'CSV has no rows'
)
else
:
with pd.ExcelWriter(
'GeeksForGeeks.xls'
) as writer:
df.to_excel(writer,
'GFGSheet'
)
writer.save()
msg.showinfo(
'Excel file created'
,
'Excel File created'
)
except
FileNotFoundError as e:
msg.showerror(
'Error in opening file'
, e)
def
display_xls_file(
self
):
try
:
self
.file_name
=
filedialog.askopenfilename(initialdir
=
'/Desktop'
,
title
=
'Select a excel file'
,
filetypes
=
((
'excel file'
,
'*.xls'
),
(
'excel file'
,
'*.xls'
)))
df
=
pd.read_excel(
self
.file_name)
if
(
len
(df)
=
=
0
):
msg.showinfo(
'No records'
,
'No records'
)
else
:
pass
self
.f2
=
Frame(
self
.root, height
=
200
, width
=
300
)
self
.f2.pack(fill
=
BOTH,expand
=
1
)
self
.table
=
Table(
self
.f2, dataframe
=
df,read_only
=
True
)
self
.table.show()
except
FileNotFoundError as e:
print
(e)
msg.showerror(
'Error in opening file'
,e)
root
=
Tk()
root.title(
'GFG---Convert CSV to Excel File'
)
obj
=
csv_to_excel(root)
root.geometry(
'800x600'
)
root.mainloop()
Содержание
- Общая информация
- Лента
- Создание пользовательской формы
- Элементы управления в панели инструментов
- Элементы управления формой
- Элементы управления ActiveX
- Пример
- Переключатели
- Поле со списком
- Список
- Счётчик
- Встроенный объект для ввода данных Excel
- Как в Excel нарисовать линию
- Как в Excel нарисовать стрелку
- Изображения
- Значки
- Трехмерные модели
- Рисование
- Панель быстрого доступа
Общая информация
Интерфейс Excel 2010 является дальнейшим развитием пользовательского интерфейса, который впервые был использован в выпуске системы Microsoft Office 2007. При создании интерфейса разработчиками была поставлена задача: сделать основные приложения Microsoft Office удобнее в работе. В результате был создан пользовательский интерфейс Microsoft Office Fluent, который упрощает для пользователей работу с приложениями Microsoft Office и дает возможность быстрее получать лучшие результаты.
В предыдущих выпусках приложений Microsoft Office пользователям предоставлялась система меню, панелей инструментов, диалоговых окон. Такой интерфейс работал хорошо, пока в приложениях было ограниченное число команд. Теперь, когда программы выполняют намного больше функций, пользователям становится нелегко работать со старой системой: слишком много программных возможностей, и их трудно найти.
В Office Fluent дизайн пользовательского интерфейса был переработан, чтобы упростить процедуры поиска и использования всего диапазона возможностей, предоставляемых этими приложениями. Кроме того, предполагалось предотвратить загромождение рабочей области — ради того, чтобы пользователи меньше отвлекались на поиск и могли больше времени и энергии тратить на свою работу.
Лента
Главный элемент пользовательского интерфейса Microsoft Excel 2010 представляет собой ленту, которая идет вдоль верхней части окна каждого приложения, вместо традиционных меню и панелей инструментов (рис. 1.1).
Рис. 1.1. Лента
С помощью ленты можно быстро находить необходимые команды (элементы управления: кнопки, раскрывающиеся списки, счетчики, флажки и т.п.). Команды упорядочены в логические группы, собранные на вкладках.
Заменить ленту панелями инструментов или меню предыдущих версий приложения Microsoft Excel нельзя.
Удалить ленту также нельзя. Однако, чтобы увеличить рабочую область, ленту можно скрыть (свернуть).
- Нажмите кнопку Свернуть ленту, расположенную в правой части линии названий вкладок (рис. 1.2).
Рис. 1.2. Сворачивание ленты
- Лента будет скрыта, названия вкладок останутся (рис. 1.3).
Рис. 1.3. Окно со свернутой лентой
Ленту можно свернуть и иначе.
- Щелкните правой кнопкой мыши в любом месте ленты (см. рис. 1.2 ).
- В контекстном меню выберите команду Свернуть ленту.
Для использования ленты в свернутом состоянии щелкните по названию нужной вкладки, а затем выберите параметр или команду, которую следует использовать. Например, при свернутой вкладке можно выделить текст в документе Excel, щелкнуть вкладку Главная и в группе Шрифт выбрать нужный размер шрифта. После выбора размера шрифта лента снова свернется.
Чтобы быстро свернуть ленту, дважды щелкните имя активной вкладки. Для восстановления ленты дважды щелкните вкладку.
Чтобы свернуть или восстановить ленту, можно также нажать комбинацию клавиш Ctrl + F1.
Внешний вид ленты зависит от ширины окна: чем больше ширина, тем подробнее отображаются элементы вкладки. На рисунках приведено отображение ленты вкладки Главная при различной ширине окна.
Рис. 1.4. Отображение ленты вкладки Главная при ширине окна 1024 точки
Рис. 1.5. Отображение ленты вкладки Главная при ширине окна 800 точек
Создание пользовательской формы
Чтобы создать пользовательскую форму, выполните следующие действия:
- Нажмите вкладку РАЗРАБОТЧИК на ленте.
- Нажмите Visual Basic. Откроется окно Visual Basic для книги.
- Нажмите Вставить,
- Выберите UserForm из выпадающего списка.
Пользовательская форма появляется в правой части окна.
Элементы управления в панели инструментов
Пользовательская форма будет иметь разные компоненты. Когда вы нажимаете на любой из компонентов, вам либо будут предоставлены инструкции о том, что и как должна быть предоставлена информация, либо вам будут предоставлены варианты (варианты) для выбора. Все это обеспечивается с помощью элементов управления ActiveX в панели инструментов пользовательской формы.
Excel предоставляет два типа элементов управления – элементы управления формы и элементы управления ActiveX. Вы должны понимать разницу между этими двумя типами элементов управления.
Элементы управления формой
Элементы управления формой – это оригинальные элементы управления Excel, которые совместимы с более ранними версиями Excel, начиная с Excel версии 5.0. Элементы управления формой также предназначены для использования на листах макроса XLM.
Вы можете запускать макросы с помощью элементов управления формы. Вы можете назначить существующий макрос элементу управления, или написать или записать новый макрос. При нажатии на элемент управления макрос. Вы уже научились вставлять командную кнопку из элементов управления формы на листе для запуска макроса. Однако эти элементы управления не могут быть добавлены в пользовательскую форму.
Элементы управления ActiveX
Элементы управления ActiveX могут использоваться в пользовательских формах VBA. Элементы управления ActiveX имеют широкие свойства, которые можно использовать для настройки их внешнего вида, поведения, шрифтов и других характеристик.
У вас есть следующие элементы управления ActiveX в UserForm ToolBox –
- Указатель
- этикетка
- Текстовое окно
- Поле со списком
- ListBox
- CheckBox
- OptionButton
- Рамка
- Кнопка-переключатель
- CommandButton
- TabStrip
- MultiPage
- Полоса прокрутки
- в полях ввода
- Образ
В дополнение к этим элементам управления Visual Basic предоставляет функцию MsgBox, которую можно использовать для отображения сообщений и / или запроса пользователя о действии.
В следующих нескольких разделах вы поймете эти элементы управления и MsgBox. Затем вы сможете выбрать, какой из этих элементов управления требуется для разработки пользовательской формы.
Пример
Разберем конкретный пример применения сразу нескольких Элементов управления. В файле примера с помощью элементов управления показано как пользователь может отредактировать значения в таблице (диапазон F9:K12 ).
С помощью одного из 3-х элементов управления Поле со списком, Список и Счетчик , пользователь может выбрать столбец таблицы (год) . Нужный элемент управления выбирается с помощью группы Переключателей . Название выбранного элемента подсвечивается серым цветом (см. A8:B8 на рис. выше). Выбранный год выделяется в таблице Условным форматированием темно серым цветом (см. H9 :H12 на рис. выше). Отображение этого выделения регулируется Флажком (фон флажка – красный). Полосами прокрутки можно редактировать Цену и Количество в выбранном году, но только в определенном диапазоне.
Переключатели
На листе использовано 3 Переключателя объединенных в Группу . Каждому Переключателю соответствует определенный элемент управления: Поле со списком, Список, Счетчик .
Для объединения Элементов в группу помещаем на лист Элемент управления Группа (через меню ). В рамках группы создаем 3 переключателя (также через меню ) и связываем их все с одной ячейкой С2 (выделив элемент управления, правой клавишей вызываем контекстное меню, Формат объекта …, вкладка Элемент управления ).
Удерживая клавишу CTRL выделяем 3 переключателя и элемент Группа , вызываем правой клавишей мыши контекстное меню и выбираем . Теперь при выборе одного из трех Переключателей в Группе , в ячейке С2 будет выводиться значение 1, 2 или 3.
Поле со списком
Теперь вставим элемент управления Поле со списком . Вставить элемент можно через меню: . В ячейках столбца М введем несколько значений лет: 2009, 2010, 2011, 2012, 2013. Эти значения будут использованы в элементе Поле со списком .
Создадим Именованный диапазон Список .
- выделяем диапазон М9:М12
- нажимаем
Рассмотрим создание
интерфейса пользователя на простом
примере. Пусть на листе Excel
размещены столбцы чисел. Требуется,
чтобы проектируемое приложение позволяло
пользователю выбрать столбец для
сортировки, выбрать вариант сортировки
(по возрастанию или по убыванию) и,
наконец, выполнить саму сортировку. Из
поставленной задачи следует, что наше
приложение надо “оснастить” элементами
управления (см. подраздел 2.2) для выбора
номера столбца (поле во взаимосвязи
со счетчиком), варианта сортировки
(переключатели) и для запуска
событийной процедуры сортировки
(командная кнопка). С помощью VBA
эти элементы управления можно разместить
или прямо на листе Excel
(рис. 10.1), или же на диалоговой форме,
которая будет появляться в диалоговом
окне (поверх листа Excel)
при нажатии на кнопку Сортировать
– кнопку целесообразно оставить на
листе Excel и в этом случае.
Рассмотрим первый вариант.
С помощью пункта
меню Вид/Панели инструментов/Visual
Basic разместим панель
инструментов VBA рядом с
другими панелями инструментов Excel
(см. рис.10.1). На этой панели нас будут
интересовать два значка: Элементы
управления (значок в виде молоточков)
и Редактор Visual
Basic (соседний слева).
Второй значок нам понадобится позже,
во время разработки процедур, для
переключения на окно редактора. А нажатие
на кнопку с первым значком приведет к
появлению в пределах листа Excel
окна, содержащего палитру элементов
управления (на рис. 10.1 – справа) и три
кнопки: Режим конструктора, Свойства
и Исходный текст.
Первая из этих
кнопок позволяет перейти в режим
конструктора. В этом режиме работа
пользователя с таблицей Excel
блокируется, но есть возможность
создавать приложение VBA.
Вторая кнопка позволяет открыть окно
Свойства – оно показано на рисунке
для счетчика, имеющего имя SpinButton1
(он выделен щелчком мыши). Третья кнопка
позволяет переключиться в окно редактора,
причем именно на процедуру обработки
события, связанного с выделенным
элементом управления – на рис.10.2 это
событийная процедура, срабатывающая в
тот момент, когда пользователь изменяет
значение счетчика.
Итак, теперь на
листе Excel имеется весь
необходимый инструментарий для создания
интерфейса приложения. Само создание
интерфейса сводится к выбору элемента
управления из палитры (на рис. 10.1 –
справа), к размещению этого элемента с
помощью мыши на листе Excel,
к установке свойств элемента и к написанию
событийной процедуры, если она требуется
для данного элемента управления. В
интерфейс нашего приложения включены
следующие элементы управления:
-
Надпись
со статическим текстом, для которой
установлено свойство Caption
(Заголовок) – Номер столбца; -
поле,
для которого установлено свойство
Value (Значение) – 1;
если пользователь не изменит это
значение, то сортироваться будет первый
столбец; -
счетчик;
для него установлены свойства Min=1,
Max=100, Value=1; -
переключатели,
для которых установлены свойства
Caption и Value;
у одного из переключателей заголовок
— По возрастанию, а у второго – По
убыванию; у одного свойство Value=True
(истина – истинным считается утверждение
о выборе этого переключателя), у второго
Value=False
(ложь); -
командная
кнопка; для нее установлено свойство
Caption=Сортировать.
Каждому элементу
управления VBA присваивает
имя по умолчанию. Например, первому
переключателю – OptionButton1,
второму – OptionButton2, счетчику –
SpinButton1, т.е. берется
английское название элемента, и к нему
присоединяется порядковый номер. Имя
можно изменить, как всякое свойство
объекта. Например, переключатели можно
назвать короче: Option1,
Option2. Имена
элементов управления участвуют в
образовании имен событийных процедур.
Так, при двойном щелчке мышью по элементу
SpinButton1 произойдет
переключение на окно Visual
Basic (Рис. 10.2), в котором
автоматически появится пустая событийная
процедура:
Private Sub
SpinButton1_Change( )
End Sub
Правила записи
процедур мы рассмотрим в следующих
подразделах. Сейчас важно понять, что
процедура SpinButton1_Change
будет автоматически выполняться, как
только пользователь изменит значение
счетчика (Change – изменять).
Панель
инструментов
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
0 / 0 / 2 Регистрация: 05.01.2018 Сообщений: 57 |
|
1 |
|
Создание графического интерфейса пользователя15.04.2018, 12:59. Показов 5716. Ответов 4
Здравствуйте. Столкнулся с тяжелой проблемой(( Работа должна быть выполнена в Excel. • На форме создать: Примечание. Поле стоимость рассчитать по формуле Стоимость=Кол-во*Цена. Ничего страшного, если какой-то пункт не будет выполнен. Большая просьба, по возможности допишите комментарии, чтобы я смог разобраться. Миниатюры
0 |
11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
|
15.04.2018, 13:46 |
2 |
Я ничего не понимаю в VBA Не по теме: Скажи это в деканате! тебе даже это не под силу? «нарисовать» на форме объекты?!
0 |
0 / 0 / 2 Регистрация: 05.01.2018 Сообщений: 57 |
|
15.04.2018, 13:50 [ТС] |
3 |
Я студент, а препод попался настолько хитрый, что лекции у нас минимально информативные, но на сдачи Лабораторных работ либо сдавай, либо плати. Денег нет. Потому я и здесь
0 |
11482 / 3773 / 677 Регистрация: 13.02.2009 Сообщений: 11,145 |
|
15.04.2018, 14:08 |
4 |
1 |
GEORGE001 0 / 0 / 2 Регистрация: 05.01.2018 Сообщений: 57 |
||||
16.04.2018, 00:30 [ТС] |
5 |
|||
Посидел, разобрался, более-менее. Осмелюсь спросить вас, где ошибка?
Добавлено через 19 минут
0 |
Everybody in this country should learn how to program a computer... because it teaches you how to think." -Steve Jobs
Я хотел бы расширить мудрые слова Стива Джобса и сказать, что все в мире должны научиться программировать компьютер. Возможно, вам совсем не обязательно работать программистом или писать программы, но это научит вас думать.
В этом уроке мы рассмотрим следующие темы.
- Что такое VBA?
- Почему VBA?
- Личные и бизнес приложения VBA в Excel
- Visual Basic для приложений Основы VBA
- Пошаговый пример создания простого калькулятора электромагнитных помех в Excel
Что такое VBA?
VBA означает Visual Basic для приложений . Прежде чем мы углубимся в детали, давайте посмотрим, что такое компьютерное программирование на языке неспециалиста. Предположим, у вас есть горничная. Если вы хотите, чтобы горничная убиралась в доме и стирала. Вы говорите ей, что делать, скажем, на английском, и она сделает всю работу за вас. Работая с компьютером, вы захотите выполнить определенные задачи. Точно так же, как вы сказали горничной делать домашние дела, вы также можете сказать компьютеру, чтобы он выполнял задачи за вас.
Процесс сообщения компьютеру о том, что вы хотите, чтобы он делал для вас, называется компьютерным программированием. Точно так же, как вы использовали английский, чтобы сказать горничной, что делать, вы также можете использовать английские операторы, чтобы сказать компьютеру, что делать. Заявления, подобные английскому, относятся к категории языков высокого уровня. VBA – это язык высокого уровня, который вы можете использовать, чтобы превзойти свою мощь.
VBA на самом деле к югу набор Visual Basic 6.0 BASIC означает B eginners LL-Purpose S при ymbolic I nstruction C ода.
Почему VBA?
- Для написания инструкций используются английские выражения.
- Создание пользовательского интерфейса похоже на использование программы рисования. Вы просто должны перетащить, перетащить и выровнять элементы управления графического интерфейса пользователя.
- Короткая кривая обучения. С первого дня, когда вы начинаете учиться, вы можете сразу начать писать простые программы.
- Расширяет функциональность Excel, позволяя заставить Excel вести себя так, как вы хотите
Личные и бизнес приложения VBA в Excel
Для личного использования вы можете использовать его для простых макросов, которые автоматизируют большинство ваших рутинных задач. Прочитайте статью о макросах для получения дополнительной информации о том, как вы можете достичь этого.
Для бизнес-целей вы можете создавать полноценные мощные программы на базе Excel и VBA. Преимущество этого подхода в том, что вы можете использовать мощные функции Excel в своих собственных программах.
Visual Basic для приложений Основы VBA
Прежде чем мы сможем написать какой-либо код, мы должны сначала знать основы. Следующие основы помогут вам начать.
- Переменная – в старших классах мы узнали об алгебре. Найдите (x + 2y), где x = 1 и y = 3. В этом выражении x и y являются переменными. Им могут быть назначены любые номера, то есть 1 и 3 соответственно, как в этом примере. Они также могут быть изменены, чтобы сказать 4 и 2 соответственно. Короче говоря, переменные являются ячейками памяти. Поскольку вы работаете с VBA, вам потребуется также объявлять переменные, как в классах алгебры.
-
Правила создания переменных
- Не используйте зарезервированные слова – если вы работаете студентом, вы не можете использовать титул лектора или директора. Эти названия зарезервированы для преподавателей и администрации школы. Зарезервированные слова – это те слова, которые имеют особое значение в Vba, и поэтому их нельзя использовать в качестве имен переменных.
- Имена переменных не могут содержать пробелов – вы не можете определить переменную с именем first number. Вы можете использовать firstNumber или first_number.
- Используйте описательные имена – очень заманчиво назвать переменную после себя, но избегайте этого. Используйте описательные имена, например количество, цену, промежуточную сумму и т. Д., Чтобы ваш код VBA был легко читаем
-
Арифметические операторы. Применяются правила сложения и вычитания в скобках деления умножения (BODMAS), поэтому не забывайте применять их при работе с выражениями, использующими несколько различных арифметических операторов. Как и в Excel, вы можете использовать
- + для дополнения
- – для вычитания
- * для умножения
- / для деления.
-
Логические операторы. Концепция логических операторов, описанная в предыдущих руководствах, также применяется при работе с VBA. К ним относятся
- Если заявления
- ИЛИ
- НЕ
- А ТАКЖЕ
- ПРАВДА
- ЛОЖНЫЙ
Включить опцию разработчика
- Создать новую рабочую книгу
- Click on the ribbon start button
- Select options
- Click on customize ribbon
- Select the developer checkbox as shown in the image below
- Click OK
You will now be able to see the DEVELOPER tab in the ribbon
VBA Hello world
Now we will demonstrate how to program in VBA. All program in VBA has to start with “Sub” and end with “End sub”. Here the name is the name you want to assign to your program. While sub stands for a subroutine which we will learn in the later part of the tutorial.
Sub name() . . . End Sub
We will create a basic VBA program that displays an input box to ask for the user’s name then display a greeting message
This tutorial assumes you have completed the tutorial on Macros in excel and have enabled the DEVELOPER tab in excel.
- Create a new work book
- Save it in an excel macro enabled worksheet format *.xlsm
- Нажмите на вкладку РАЗРАБОТЧИК
- Нажмите на раскрывающийся список INSERT под панелью управления
- Выберите командную кнопку, как показано на рисунке ниже
Нарисуйте командную кнопку в любом месте листа
Вы получите следующее диалоговое окно
- Переименуйте имя макроса в btnHelloWorld_Click
- Нажмите на новую кнопку
- Вы получите следующее окно кода
Введите следующие коды инструкций
Dim name As String name = InputBox("Enter your name") MsgBox "Hello " + name
ВОТ,
- «Dim name as String» создает переменную с именем name. Переменная будет принимать текстовые, числовые и другие символы, потому что мы определили ее как строку
- «name = InputBox (« Введите ваше имя »)» вызывает встроенную функцию InputBox, которая отображает окно с заголовком «Введите ваше имя». Введенное имя затем сохраняется в переменной имени.
- ” MsgBox” Hello “+ name” вызывает встроенную функцию MsgBox, которая отображает Hello и введенное имя.
Ваше полное окно кода теперь должно выглядеть следующим образом
- Закройте окно кода
- Щелкните правой кнопкой мыши на кнопке 1 и выберите редактировать текст
- Войти Скажи привет
- Нажмите на Скажи привет
- Вы получите следующее поле ввода
- Введите свое имя т.е. Иордания
- Вы получите следующее окно сообщения
Поздравляем, вы только что создали свою первую программу VBA в Excel
Пошаговый пример создания простого калькулятора электромагнитных помех в Excel
В этом учебном упражнении мы собираемся создать простую программу, которая рассчитывает EMI. EMI является аббревиатурой от равных ежемесячных платежей. Это ежемесячная сумма, которую вы выплачиваете, когда получаете кредит. На следующем рисунке показана формула для расчета EMI.
Приведенная выше формула сложна и может быть написана в Excel. Хорошей новостью является то, что Excel уже позаботился о вышеуказанной проблеме Вы можете использовать функцию PMT для вычисления выше.
Функция PMT работает следующим образом
=PMT(rate,nper,pv)
ВОТ,
- «Оценить» это месячная ставка. Это процентная ставка, деленная на количество платежей в год
- «nper» – это общее количество платежей. Это срок кредита, умноженный на количество платежей в год
- «pv» текущая стоимость. Это фактическая сумма кредита
Создайте графический интерфейс с использованием ячеек Excel, как показано ниже
Добавьте командную кнопку между строками 7 и 8
Дайте кнопке имя макроса btnCalculateEMI_Click
Нажмите на кнопку редактирования
Введите следующий код
Dim monthly_rate As Single, loan_amount As Double, number_of_periods As Single, emi As Double monthly_rate = Range("B6").Value / Range("B5").Value loan_amount = Range("B3").Value number_of_periods = Range("B4").Value * Range("B5").Value emi = WorksheetFunction.Pmt(monthly_rate, number_of_periods, -loan_amount) Range("B9").Value = emi
ВОТ,
- «Dim month_rate As Single,…» Dim – это ключевое слово, которое используется для определения переменных в VBA, month_rate – имя переменной, Single – тип данных, который означает, что переменная будет принимать число.
- “month_rate = Range (” B6 “). Value / Range (” B5 “). Value” Range – это функция, используемая для доступа к ячейкам Excel из VBA, Range (“B6”). Значение ссылается на значение в B6
- «WorksheetFunction.Pmt (…)» WorksheetFunction – это функция, используемая для доступа ко всем функциям в Excel.
На следующем рисунке показан полный исходный код
- Нажмите на сохранить и закройте окно кода
- Протестируйте свою программу, как показано на анимированном изображении ниже
Пример 2
Шаг 1) На вкладке «Разработчик» в главном меню щелкните значок «Visual Basic», чтобы открыть редактор VBA.
Шаг 2) Откроется редактор VBA, из которого вы можете выбрать лист Excel, в котором вы хотите запустить код. Чтобы открыть редактор VBA, дважды щелкните по листу.