Офисное программирование
Добавить в закладки К обложке
- Введение - Страница 1
- Часть IОсноные седения о программироании на VBA - Страница 2
- 1.2. Редактор VBA. Первое знакомство - Страница 7
- 1.3. Изменение порядка выполнения операторов - Страница 9
- Глава 2Объект UserForm - Страница 14
- 2.2. Использование форм - Страница 16
- Глава 3Массивы, процедуры, функции - Страница 20
- 3.2. Работа с различными типами данных - Страница 24
- 3.3. Процедуры и функции VBA - Страница 26
- Глава 4Создание VBA-программ - Страница 31
- 4.2. Элементы управления ComboBox, OptionButton и Frame - Страница 34
- 4.3. Элементы управления MultiPage, ScrollBar, SpinButton[2] - Страница 37
- 4.4. Объект DataObject[3] - Страница 41
- Часть IIПрограммирование на VBA в Word - Страница 44
- 5.2. Форматирование документа - Страница 48
- Глава 6Автоматизация стандартных документов - Страница 52
- 6.2. Создание и автоматическое заполнение бланков стандартных документов - Страница 55
- Часть IIIПрограммирование на VBA в Excel - Страница 58
- 7.2. Использование возможностей VBA при непосредственных расчетах - Страница 63
- 7.3. Финансовые функции - Страница 67
- Глава 8Построение диаграмм средстами VBA - Страница 69
- 8.2. Построение круговых диаграмм и гистограмм - Страница 72
- Глава 9Базы данных в Excel - Страница 73
- 9.2. Конструирование пользовательского интерфейса - Страница 76
- Глава 10Создание собственного головного меню[9] - Страница 78
- Литература - Страница 83
Каждому текстовому полю поменяем стандартное имя (TextBox) на более понятное (рис. 97). В нашем примере:
TextBox1 – MesTextBox – ввод месяца;
TextBox2 – YearTextBox – ввод года;
TextBox3 – FIOTextBox – ввод фамилии, имени и отчества экономиста;
TextBox4 – POTextBox – ввод названия потребительского общества;
TextBox5 – SPTextBox – планируемая сумма издержек;
TextBox6 – SFTextBox – фактическая сумма издержек;
TextBox7 – TPTextBox – планируемый товарооборот;
TextBox8 – TFTextBox – фактический товарооборот;
TextBox9 – IPTextBox – планируемый уровень издержек;
TextBox10 – EFTextBox – фактический уровень издержек.
Рис. 97. Разработанная форма примера 47 в рабочем состоянии
Программа на языке VBA
' Объявление переменных и констант
Const StrNomer = 7 'количество строк для заголовка таблицы
Dim Nomer As Long 'номер очередной строки таблицы (потребительское общество)
Dim SP As Long
Dim SF As Long
Dim TP As Long
Dim TF As Long
Dim IP As Long
Dim EF As Long
Dim ItogSP As Long
Dim ItogSF As Long
Dim ItogTP As Long
Dim ItogTF As Long
Dim ItogIP As Long
Dim ItogEF As Long
Dim StrName1 As String
Dim StrName2 As String
'Процедура инициализации формы
Private Sub UserForm_Initialize()
Worksheets(«Отчет»).Activate
MesTextBox.SetFocus
End Sub
'Процедура считывания заголовочных данных и вывода их в ячейки электронной таблицы Private Sub CommandButton3_Click()
'Ввод данных для новой отчетной таблицы
With ActiveSheet
Range(«E3»).Value = MesTextBox.Text
Range(«G3»).Value = YearTextBox.Text
End With
ActiveWorkbook.SaveAs ("Отклонение фактического уровня издержек обращения от плана за " + MesTextBox.Text + «месяц. xls»)
Nomer = 1
ItogSP = 0
ItogSF = 0
ItogTP = 0
ItogTF = 0
ItogIP = 0
ItogEF = 0
End Sub
' Процедура обработки данных по видам деятельности
Private Sub CommandButton2_Click()
StrName1 = Trim(Str(StrNomer + Nomer))
With ActiveSheet
Range("A" + StrName1).Value = Nomer
Range("B" + StrName1).Value = POTextBox.Text
SP = Val(SPTextBox.Text)
Range("C" + StrName1).Value = SP
ItogSP = ItogSP + SP
SF = Val(SFTextBox.Text)
Range("D" + StrName1).Value = SF
ItogSF = ItogSF + SF
TP = Val(TPTextBox.Text)
Range("E" + StrName1).Value = TP
ItogTP = ItogTP + TP
TF = Val(TFTextBox.Text)
Range("F" + StrName1).Value = TF
ItogTF = ItogTF + TF
IP = Val(IPTextBox.Text)
Range("G" + StrName1).Value = IP
ItogIP = ItogIP + IP
EF = Val(EFTextBox.Text)
Range("H" + StrName1).Value = EF
ItogEF = ItogEF + EF
Range("I" + StrName1).Value = EF – IP
'Выполнение автозаполнения с текущей строки таблицы на следующую строку
StrName2 = Trim(Str(StrNomer + Nomer + 1))
Set Range1 =.Range("A" + StrName1 +":I" + StrName1)
Set Range2 =.Range("A" + StrName1 +":I" + StrName2)
Range1.AutoFill Destination:=Range2
Range("A" + StrName2 +":I" + StrName2).ClearContents
End With
'Очистка полей формы для ввода очередных данных
POTextBox.Text = ""
SPTextBox.Text = ""
SFTextBox.Text = ""
TPTextBox.Text = ""
TFTextBox.Text = ""
IPTextBox.Text = ""
EFTextBox.Text = ""
POTextBox.SetFocus
Nomer = Nomer + 1
End Sub
'Закрытие формы, подведение итогов и вывод фамилии экономиста
Private Sub CommandButton1_Click()
UserForm1.Hide
StrName1 = Trim(Str(StrNomer + Nomer))
With ActiveSheet
Range("A" + StrName1).Value = «Итого:»
Range("C" + StrName1).Value = ItogSP
Range("D" + StrName1).Value = ItogSF
Range("E" + StrName1).Value = ItogTP
Range("F" + StrName1).Value = ItogTF
Range("G" + StrName1).Value = ItogIP
Range("H" + StrName1).Value = ItogEF