よねさんのWordとExcelの小部屋 のHomeへ戻る

テキストボックスの値を相互に変換する:Excel VBA入門


スポンサードリンク


テキストボックスの値を相互に変換する   topへ

  1. 関連付けたデータとして、ここでは会員番号(数値)と氏名のデータをシートに入力しています。
  2. VBEで下図のようにユーザーフォームにテキストボックスを2個配置しています。
  3. コードは標準モジュールに UserForm1.Show vbModeless としました。
    Sub test1()

      UserForm1.Show vbModeless

    End Sub
  4. テキストボックスに関してはDictionaryを利用して値を取り出す方法としてみました。
    TextBox1の値には会員番号(シートには数値として入力したものを使っています)が数値であるので、Dictionaryで取り出すときはTextBox1の値(文字列)を数値に変換しています。
    Private Sub TextBox1_AfterUpdate()
      Dim myDic As Object, myKey
      Dim c, myVal
      Dim i As Long
        Set myDic = CreateObject("Scripting.Dictionary")
        myVal = Range("A2:B21").Value

        For i = 1 To 20
          If Not myDic.Exists(myVal(i, 1)) Then
            myDic.Add myVal(i, 1), myVal(i, 2)
          End If
        Next i

        TextBox2.Value = myDic.Item(CInt(TextBox1.Value))

        Set myDic = Nothing

    End Sub

    '-----------------
    Private Sub TextBox2_AfterUpdate()
      Dim myDic As Object, myKey
      Dim c, myVal
      Dim i As Long

        Set myDic = CreateObject("Scripting.Dictionary")
        myVal = Range("A2:B21").Value
        '---myDicにKeyとItemを格納する
        For i = 1 To 20
          If Not myDic.Exists(myVal(i, 2)) Then
            myDic.Add myVal(i, 2), myVal(i, 1)
          End If
        Next i
        '---Itemを取り出す
        TextBox1.Value = myDic.Item(TextBox2.Value)

        Set myDic = Nothing

    End Sub

スポンサードリンク



よねさんのWordとExcelの小部屋Excel(エクセル)講座の総目次Excel(エクセル) VBA入門:目次|テキストボックスの値を相互に変換する

PageViewCounter
 Counter
 Since2006/2/27