Ниже мы рассмотрим программу в Excel VBA, который создает UserForm, который преобразует любую сумму из одной валюты в другую.

UserForm мы собираемся создать выглядит следующим образом:

Currency Converter in Excel VBA

Для создания этого UserForm, выполните следующие действия.

  1. Откройте редактор Visual Basic. Если проводник проекта не отображается, нажмите кнопку Просмотр, Project Explorer.

  2. Нажмите кнопку Вставить, UserForm. Если панель инструментов не появляется автоматически, нажмите кнопку View, Toolbox. Экран должен быть установлен, как показано ниже.

Userform Screen Setup in Excel VBA

  1. Добавьте метки, окно списка (первый слева, второй справа), текстовые поля (первый слева, второй справа) и командную кнопку. После того, как это было закончено, результат должен быть согласован с изображением UserForm, показанным ранее. Например, создать элемент управления окна списка, нажав на ListBox из панели инструментов. Далее, вы можете перетащить окно списка на UserForm.

  2. Вы можете изменить имена и подписи элементов управления. Имена используются в коде Excel VBA. Титры являются те, которые появляются на экране. Это хорошая практика, чтобы изменить имена элементов управления, но не надо здесь, потому что у нас есть только несколько элементов управления в этом примере. Чтобы изменить заголовок пользовательской формы, кнопок команд и ярлыков, выберите Вид, Свойство окно и нажмите на каждый элементе управления.

  3. Для того, чтобы показать UserForm, поместить командную кнопку на листе и добавьте следующие строки кода:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Сейчас мы собираемся создать Sub UserForm_Initialize. При использовании метода Show для UserForm, этот подпункт будет автоматически выполняться.

  1. Откройте редактор Visual Basic.

  2. В окне Project Explorer, щелкните правой кнопкой мыши на UserForm1, а затем нажмите кнопку Просмотр кода.

  3. Выберите UserForm из списка левого выпадающего списка. Выберите Initialize справа в раскрывающемся списке.

  4. Добавьте следующие строки кода:

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.

  1. В окне проекта дважды щелкните на UserForm1.

  2. Дважды нажмите на кнопку Go.

  3. Добавьте следующие строки кода:

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. пользовательской формы.

Результат:

Currency Converter Result