Excel VBA質問箱 IV

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

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


25203 / 76736 ←次へ | 前へ→

【56877】Re:Changeイベントが動きません
発言  kanabun  - 08/7/9(水) 14:34 -

引用なし
パスワード
   前述のように、テキストボックスのChangeイベントは
1文字入力されるたびに発生しますから、入力途中の
支店コードをキー入力があるたびにチェックしても
重複チェックはできないです。
そこで、提案なのですが、
UserForm1の支店コードを入力するTextBox1 を
ComboBoxコントロールに置き換えてみてはいかがでしょうか?
そうすると、ユーザーは ComboBox1から既存リストの一覧を
選択するだけで、コードと対応する支店名をTextBox2 に
表示することができます。いちいちコードをタイプする必要
はなくなりますし、コードがどの支店名のものであるかを
ビジブルに確認できます。
また、こうすると、
UserForm1の[新規登録]ボタンを押して、UserForm2 を表示して
新規コードと支店名を登録するときも、UserForm1のComboBox1
が使っているセル範囲をすぐ参照して、すでに既存のコードが
がないかチェックするのも容易になります。

'----------------------------------------------- UserForm1
Option Explicit
Private Sub UserForm_Initialize()
 Call Update支店コード表
End Sub

Sub Update支店コード表() 'UserForm1とUserForm2 から呼ばれるプロシージャ
 Dim rg As Range
 With Worksheets("Sheet1")
   Set rg = .Range("A2", .Cells(Rows.Count, 1).End(xlUp)).Resize(, 2)
 End With
 With ComboBox1
   .ColumnCount = 2
   .ColumnWidths = "40;50"
   .ColumnHeads = True
   .RowSource = rg.Address(External:=True)
 End With
End Sub

Private Sub ComboBox1_Change()
  Dim i As Long
  i = ComboBox1.ListIndex
  If i < 0 Then Exit Sub
  TextBox2.Text = ComboBox1.List(i, 1)
  TextBox3.Text = ""
End Sub

Private Sub btn新規_Click()
 UserForm2.Show 0
End Sub

'----------------------------------------------- UserForm2
Option Explicit

Private Sub btn新規登録_Click()
  Dim sCode As String
  Dim sName As String
  Dim rg As Range
  Dim m
  
  sCode = TextBox1.Text
  sName = TextBox2.Text
  If Len(sCode) < 2 Then Exit Sub
  If Len(sName) < 1 Then Exit Sub
  
  Set rg = Excel.Range(UserForm1.ComboBox1.RowSource)
  m = Application.Match(sCode, rg.Columns(1), 0)
  If IsNumeric(m) Then
    MsgBox rg.Item(m, 1) & vbTab & rg.Item(m, 2) & vbCr _
    & "は すでに登録されています"
  Else
    '---- 新規支店セット
    With rg
      .Item(rg.Rows.Count + 1, 1).Value = sCode
      .Item(rg.Rows.Count + 1, 2).Value = sName
    End With
    UserForm1.Update支店コード表
  End If
End Sub

0 hits

【56870】Changeイベントが動きません こまったわんこ 08/7/9(水) 12:13 質問
【56871】Re:Changeイベントが動きません kanabun 08/7/9(水) 12:26 発言
【56872】Re:Changeイベントが動きません こまったわんこ 08/7/9(水) 12:34 質問
【56877】Re:Changeイベントが動きません kanabun 08/7/9(水) 14:34 発言
【56986】Re:Changeイベントが動きません こまったわんこ 08/7/16(水) 15:34 お礼

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