Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9368 / 13646 ツリー ←次へ | 前へ→

【27750】入力フォームに品番表示 kon 05/8/17(水) 23:43 質問[未読]
【27751】Re:入力フォームに品番表示 かみちゃん 05/8/18(木) 0:20 回答[未読]
【27778】Re:入力フォームに品番表示 kon 05/8/18(木) 23:27 お礼[未読]
【27755】Re:入力フォームに品番表示 Statis 05/8/18(木) 10:05 回答[未読]
【27777】Re:入力フォームに品番表示 kon 05/8/18(木) 23:23 お礼[未読]

【27750】入力フォームに品番表示
質問  kon E-MAIL  - 05/8/17(水) 23:43 -

引用なし
パスワード
   こんばんわ
入力フォームのTextBox1に品番コードを入力すると
Label1に品番が表示されるようにする方法をどなたか教えて下さい。
上記で使用する品番マスター(A列が品番コード、B列に品番)は
同ブック内の「マスター」シートにあります。
                        以上。

【27751】Re:入力フォームに品番表示
回答  かみちゃん  - 05/8/18(木) 0:20 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>入力フォームのTextBox1に品番コードを入力すると
>Label1に品番が表示されるようにする方法をどなたか教えて下さい。

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 Dim strValue As String
 
 strValue = ""
 On Error Resume Next
 strValue = Application.VLookup(Me.TextBox1.Value, Sheets("マスター").Range("A:B"), 2, False)
 On Error GoTo 0
 Me.Label1.Caption = strValue
 DoEvents
End Sub

または、

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
 Dim c As Range
 
 With Sheets("マスター").Columns("A").Cells
  Set c = .Find(Me.TextBox1.Value, , xlValues, xlWhole)
  If Not c Is Nothing Then
   Me.Label1.Caption = c.Offset(, 1).Value
  Else
   Me.Label1.Caption = ""
  End If
 End With
 DoEvents
End Sub

でできると思います。

【27755】Re:入力フォームに品番表示
回答  Statis  - 05/8/18(木) 10:05 -

引用なし
パスワード
   こんにちは、はじめまして。

>入力フォームのTextBox1に品番コードを入力すると
>Label1に品番が表示されるようにする方法をどなたか教えて下さい。
>上記で使用する品番マスター(A列が品番コード、B列に品番)は
>同ブック内の「マスター」シートにあります。

TextBoxでなくComboBoxかListBox方が良いような気がします(入力ミスがありません)

マスターシートのA列の品番コードとB列の品番が同じ行ならフォームを
「Show」した時点で変数に取得しておけば「ListIndex プロパティ」を用いて
Labeに表示できます。

こんな感じです(すべてフォームのモジュールにて)
下記のコードはComboBoxを使用した場合です。

Dim Da() As Variant
Private Sub ComboBox1_Change()
With Me
   If .ComboBox1.Value = "" Then
    .Label1.Caption = ""
    Exit Sub
   End If
   .Label1.Caption = Da(.ComboBox1.ListIndex)
End With
End Sub

Private Sub UserForm_Initialize()
Dim i As Long, End_Row As Long
With Worksheets("マスター")
  End_Row = .Range("A65536").End(xlUp).Row
  'データは1行目よりとしています
  ReDim Da(End_Row - 1)
  For i = 1 To End_Row
    Me.ComboBox1.AddItem .Cells(i, 1).Value
    Da(i - 1) = .Cells(i, 2).Value
  Next i
End With
Me.Label1.Caption = ""
End Sub

Private Sub UserForm_Terminate()
Erase Da
End Sub

【27777】Re:入力フォームに品番表示
お礼  kon E-MAIL  - 05/8/18(木) 23:23 -

引用なし
パスワード
   konです。
こんばんわ、早速のご回答ありがとうございました。
早速、試してみます。

▼Statis さん:
>こんにちは、はじめまして。
>
>>入力フォームのTextBox1に品番コードを入力すると
>>Label1に品番が表示されるようにする方法をどなたか教えて下さい。
>>上記で使用する品番マスター(A列が品番コード、B列に品番)は
>>同ブック内の「マスター」シートにあります。
>
>TextBoxでなくComboBoxかListBox方が良いような気がします(入力ミスがありません)
>
>マスターシートのA列の品番コードとB列の品番が同じ行ならフォームを
>「Show」した時点で変数に取得しておけば「ListIndex プロパティ」を用いて
>Labeに表示できます。
>
>こんな感じです(すべてフォームのモジュールにて)
>下記のコードはComboBoxを使用した場合です。
>
>Dim Da() As Variant
>Private Sub ComboBox1_Change()
>With Me
>   If .ComboBox1.Value = "" Then
>    .Label1.Caption = ""
>    Exit Sub
>   End If
>   .Label1.Caption = Da(.ComboBox1.ListIndex)
>End With
>End Sub
>
>Private Sub UserForm_Initialize()
>Dim i As Long, End_Row As Long
>With Worksheets("マスター")
>  End_Row = .Range("A65536").End(xlUp).Row
>  'データは1行目よりとしています
>  ReDim Da(End_Row - 1)
>  For i = 1 To End_Row
>    Me.ComboBox1.AddItem .Cells(i, 1).Value
>    Da(i - 1) = .Cells(i, 2).Value
>  Next i
>End With
>Me.Label1.Caption = ""
>End Sub
>
>Private Sub UserForm_Terminate()
>Erase Da
>End Sub

【27778】Re:入力フォームに品番表示
お礼  kon E-MAIL  - 05/8/18(木) 23:27 -

引用なし
パスワード
   konです。
こんばんわ、早速のお答えありがとうございました。
早速、試してみます。

▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>入力フォームのTextBox1に品番コードを入力すると
>>Label1に品番が表示されるようにする方法をどなたか教えて下さい。
>
>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
> Dim strValue As String
> 
> strValue = ""
> On Error Resume Next
> strValue = Application.VLookup(Me.TextBox1.Value, Sheets("マスター").Range("A:B"), 2, False)
> On Error GoTo 0
> Me.Label1.Caption = strValue
> DoEvents
>End Sub
>
>または、
>
>Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
> Dim c As Range
> 
> With Sheets("マスター").Columns("A").Cells
>  Set c = .Find(Me.TextBox1.Value, , xlValues, xlWhole)
>  If Not c Is Nothing Then
>   Me.Label1.Caption = c.Offset(, 1).Value
>  Else
>   Me.Label1.Caption = ""
>  End If
> End With
> DoEvents
>End Sub
>
>でできると思います。

9368 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free