Конвертор в Excel VBA
Ниже мы рассмотрим программу в Excel VBA, который создает UserForm, который преобразует любую сумму из одной валюты в другую.
UserForm мы собираемся создать выглядит следующим образом:
Для создания этого UserForm, выполните следующие действия.
-
Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.
-
Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.
-
Добавьте метки, окно списка (первый слева, второй справа), текстовые поля (первый слева, второй справа) и командную кнопку. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления окна списка, нажав на ListBox из панели инструментов. Далее, вы можете перетащить окно списка на UserForm.
-
Вы можете изменить имена и подписи элементов управления. Имена используются в коде Excel VBA. Титры являются те, которые появляются на экране. Это хорошая практика, чтобы изменить имена элементов управления, но не надо здесь, потому что у нас есть только несколько элементов управления в этом примере. Чтобы изменить заголовок пользовательской формы, кнопок команд и ярлыков, выберите Вид, Свойство окно и нажмите на каждый элементе управления.
-
Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:
Private Sub CommandButton1_Click() UserForm1.Show End Sub
Сейчас мы собираемся создать Sub UserForm_Initialize. При использовании метода Show для UserForm, этот подпункт будет автоматически выполняться.
-
Откройте редактор Visual Basic.
-
В окне Project Explorer, щелкните правой кнопкой мыши на UserForm1, а затем нажмите кнопку Просмотр кода.
-
Выберите UserForm из списка левого выпадающего списка. Выберите Initialize справа в раскрывающемся списке.
-
Добавьте следующие строки кода:
Private Sub UserForm_Initialize() With ListBox1 .AddItem "Euro" .AddItem "Us Dollar" .AddItem "British Pound" End With With ListBox2 .AddItem "Euro" .AddItem "Us Dollar" .AddItem "British Pound" End With ListBox1.ListIndex = 1 ListBox2.ListIndex = 0 TextBox1.Value = 1 TextBox2.Value = 0.722152 End Sub
Объяснение: во-первых, эти два списка поля заполняются. Далее, валюта Доллар США устанавливается по умолчанию в первом списке и EURO currencyis устанавливается по умолчанию во втором списке. Наконец, значение 1 вводится в первом текстовом поле и значение 0,722152 вводится во втором текстовом поле.
Теперь мы создали первую часть UserForm. Хотя это выглядит аккуратным уже ничего не случится еще когда мы нажимаем на кнопку Go.
-
В окне проекта дважды щелкните на UserForm1.
-
Дважды нажмите на кнопку Go.
-
Добавьте следующие строки кода:
Private Sub CommandButton1_Click() Dim rates(0 To 2, 0 To 2) As Double, i As Integer, j As Integer rates(0, 0) = 1 rates(0, 1) = 1.38475 rates(0, 2) = 0.87452 rates(1, 0) = 0.722152 rates(1, 1) = 1 rates(1, 2) = 0.63161 rates(2, 0) = 1.143484 rates(2, 1) = 1.583255 rates(2, 2) = 1 For i = 0 To 2 For j = 0 To 2 If ListBox1.ListIndex = i And ListBox2.ListIndex = j Then TextBox2.Value = TextBox1.Value rates(i, j) Next j Next i End Sub
Объяснение: во-первых, мы объявляем массив. Массив имеет два измерения.
Он состоит из 3 строк и 3 столбцов. Далее мы инициализируем каждый элемент массива. Например, ставки (1,0) являются валютным курсом от доллара США к евро. Далее мы начинаем двойную петлю. В зависимости от выбранных валют в списках, Excel VBA преобразует количество введенного в первом текстовом поле и отображает результат во втором текстовом поле.
Пример: если я = 2 и J = 1, и мы ввести значение 2 в первом текстовом поле, Excel VBA помещает значение 2 ставки (2,1) = 2 * = 1.583255 3.16651 во втором текстовом поле.
Тест 13. пользовательской формы.
Результат: