/ / Конвертер валют у Excel VBA

Конвертер валют у Excel VBA

Нижче ми розглянемо програму в Росії Excel VBA який створює Userform, який перетворює будь-яка сума з одного валюта в іншу.

Формат Userform, який ми збираємося створити, виглядає наступним чином:

Конвертер валют у Excel VBA

Щоб створити цю Userform, виконайте наступні кроки.

1. Відкрийте редактор Visual Basic. Якщо Провідник проекту не відображається, натисніть Переглянути, Провідник проекту.

2. Клацніть Insert, Userform. Якщо панель інструментів не відображається автоматично, натисніть Переглянути, Панель інструментів. Ваш екран повинен бути налаштований як показано нижче.

Налаштування екрана Userform у програмі Excel VBA

3. Додайте мітки, списки (спочатку ліворуч, другий справа), текстові поля (перший зліва, другий справа) та кнопка команд. Після того, як це буде завершено, результат має відповідати картині формату Userform, показаному раніше. Наприклад, створіть елемент керування списком, натиснувши "ListBox" з панелі інструментів. Далі можна перетягнути поле списку на Userform.

4 Ви можете змінювати імена та підписи елементів керування. Імена використовуються в коді Excel VBA. Підписи - це ті, які з'являються на вашому екрані. Рекомендовано змінити назви елементів керування, але тут немає необхідності, оскільки в цьому прикладі ми маємо лише декілька елементів керування. Щоб змінити заголовок форми Userform, командної кнопки та міток, натисніть кнопку «Перегляд», «Властивості» та натисніть на кожному елементі керування.

5. Щоб показати Userform, помістіть на вашій робочій клавіші команду та додайте наступну кодову рядок:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

Ми збираємось створити Sub UserForm_Initialize. Якщо ви використовуєте метод Show для форми Userform, цей підрозділ буде автоматично виконано.

6. Відкрийте редактор Visual Basic.

7. У Провіднику проекту клацніть правою кнопкою миші на UserForm1 і натисніть кнопку Перегляд коду.

8. Оберіть Userform з розкривного списку ліворуч. У спадному списку праворуч виберіть «Ініціалізувати».

9. Додайте наступні кодові рядки:

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

Пояснення: по-перше, два поля списку заповнені. Далі валюта долара США встановлюється як стандартне значення в першому списку, а валюта євро встановлена ​​як стандартна у другому списку. Нарешті, значення 1 вводить у першому текстовому полі, а в другому текстовому полі вводиться значення 0.722152.

Тепер ми створили першу частину Userform. Хоча це виглядає акуратно вже, ще нічого не станеться, коли ми натискаємо кнопку "Перейти".

10. У Провіднику проекту двічі клацніть на UserForm1.

11. Двічі клацніть на кнопці Перейти.

12. Додайте наступні кодові рядки:

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 перетворює суму, введену в перше текстове поле, і відображає результат у другій текстовій скриньці.

Приклад: якщо i = 2 і j = 1, і ми вводимо значення 2 у першому текстовому полі, Excel VBA поміщає значення 2 * ставки (2,1) = 2 * 1,583255 = 3,166651 у другій текстовому полі.

13. Перевірте форму Userform.

Результат:

Результат переходу валют

Також читайте: