以下は、私たちは別のものに1つの通貨から任意の金額を変換ユーザーフォームを作成し、ExcelのVBAでプログラムを見ていきます。

ユーザーフォームは、我々は次のようにルックスを作成しようとしている。

Currency Converter in Excel VBA

このユーザーフォームを作成するには、次の手順を実行します。

  1. Visual Basicエディターを開きます。プロジェクトエクスプローラが表示されていない場合、ビュー、プロジェクトエクスプローラ]をクリックします。

挿入、ユーザーフォーム]をクリックします。ツールボックスが自動的に表示されない場合、ビュー、[ツールボックス]をクリックします。画面は以下のように設定する必要があります。

Userform Screen Setup in Excel VBA

3.コマンドボタン(最初の左、右の第二の)ラベル、リストボックス(最初の左に、右の第二)、テキストボックスを追加します。これが完了すると、結果は、前に示したユーザーフォームの画像と一致している必要があります。たとえば、ツールボックスからリストボックスをクリックして、リストボックスコントロールを作成します。次に、ユーザーフォーム上のリストボックスをドラッグすることができます。

4.名前とコントロールのキャプションを変更することができます。名前は、Excel VBAコードで使用されています。キャプションは画面に表示されるものです。コントロールの名前を変更することをお勧めですが、我々は唯一この例では、いくつかのコントロールを持っているので、それはここでは必要ではありません。ユーザーフォーム、コマンドボタンとラベルのキャプションを変更するには、[表示]、[プロパティ]ウィンドウをクリックして、各コントロールをクリックしてください。

、ユーザーフォームを表示するワークシート上のコマンドボタンを配置し、次のコード行を追加するには5:

Private Sub CommandButton1_Click()

UserForm1.Show

End Sub

私たちは今、サブUserForm_Initializeを作成しようとしています。ユーザーフォームのために、Showメソッドを使用する場合、このサブが自動的に実行されます。

  1. Visual Basicエディターを開きます。

7.プロジェクトエクスプローラでは、右のUserForm1をクリックし、[コードの表示]をクリックします。

8.左のドロップダウンリストからユーザーフォームを選択してください。右のドロップダウンリストから[Initialize]を選択してください。

次のコード行を追加します。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

説明:最初の、2つのリストボックスが満たされています。次に、ドル通貨は、最初のリストボックスでデフォルトとして設定され、EUROが2番目のリストボックスでデフォルトとして設定さcurrencyis。最後に、値1は、第1のテキストボックスに入力され、値0.722152を2番目のテキストボックスに入力されています。

私たちは今、ユーザーフォームの最初の部分を作成しました。それはすでにきちんと見えますが、我々はGoボタンをクリックすると、まだ何も起こりません。

10.プロジェクトエクスプローラで、UserForm1でダブルクリックします。

11.ダブルGoボタンをクリックしてください。

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は、最初のテキストボックスに入力された金額を変換し、2番目のテキストボックスに結果を表示します。

例:私は2とj = 1を=し、我々は最初のテキストボックスに値2を入力した場合、ExcelのVBAは値2つの速度(2,1)= 2番目のテキストボックスに、2 * 1.583255 = 3.16651を配置します。

13.テストユーザーフォーム。

結果:

Currency Converter Result