ユーザーフォームで銀行に対応した支店コードの入力ができません
Sheet1のA列に銀行名、B列に銀行コード、C列に支店名、D列に支店コードがあります。
ユーザーフォームのテキストボックス1に銀行名を入力したら、Sheet1を参照しテキストボックス2に銀行コードが自動入力できるようにはできました。
しかし、テキストボックス3に支店名を入力し、テキストボックス4に銀行に対応した支店コードを自動入力することができません。
下記記述にどのような追加をすれば可能でしょうか?ご指南いただけるとたすかります。
・・・・・・・・・・・・・・・・・・・・・・・・・・
Private Sub 銀行名_Change()
Dim r As Range
Set r = Worksheets("銀行コード").Columns("A:A").Find _
(銀行名.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not r Is Nothing Then
銀行コード.Value = r.Offset(0, 1).Value
Else
銀行コード.Value = ""
End If
End Sub
No.5ベストアンサー
- 回答日時:
#1です
かなりいい加減な回答とコードを晒してしまいました お詫びいたします
テキストボックス1に銀行名を入力したら・・
#4様が回答されているようにどうも文章とコードが合致していません
もし、テキストボックス1が銀行名と言うコントロールの場合
>自動入力できるようにはできました。
示されていコードでの実現は難しいと思います
どの様なコードなのでしょう?
#1のお詫びと訂正の意味合いを含め
示されている表組でコントロールオブジェクト名が
テキストボックス1が銀行名 テキストボックス2が銀行コード
テキストボックス3が支店名 テキストボックス4が支店コード
で支店名を入力して支店コードにD列該当行の値を入れるコードです
Private Sub 支店名_Exit(ByVal Cancel As MSForms.ReturnBoolean)
Dim r As Range, rTmp As Range, searchRng As Range
If 支店名.Value = "" Then Exit Sub
Set searchRng = Worksheets("銀行コード").Columns("C:C")
Set r = searchRng.Find(支店名.Value, LookIn:=xlValues, lookat:=xlWhole)
Set rTmp = r
Do While Cells(r.Row, "A").Value <> 銀行名.Value
Set r = searchRng.FindNext(r)
If r.Address = rTmp.Address Then
Exit Do
End If
Loop
If Not r Is Nothing Then
支店コード.Value = r.Offset(0, 1).Value
Else
支店コード.Value = ""
End If
End Sub
支店名(テキストボックス3)入力後フォーカスを移すと実行されます
Findとなっていましたので使用しています
テキストボックス1とテキストボックス3はテキストボックスより
コンボボックスやリストボックスの方が良いと思います。。
No.4
- 回答日時:
こんばんは
処理内容が、ご提示のものとボックスの名称や列の位置が違うだけなので、そのまま全部をコピペして、テキストボックスの名称と列位置の部分を書き換えればよいです。
ただし、こちらでは正しい名称等がわからないので、コード化できません。
フォーム要素の名称がどうなっているのか、文章とコードで齟齬があるのでわかりません。
・テキストボックス1なのか銀行名なのか
・テキストボックス2なのか銀行コードなのか
・テキストボックス3なのか支店名なのか
・テキストボックス4なのか始点コードなのか
また、シート名も
・Sheet1なのか銀行コードなのか
まぁ、ご提示のコードで動いているのなら、コードが正なのだろうと推測できますが、記載のない部分の名称に関してはわかりませんので。
質問者様にはわかっているはずですので、正しい名称と列に書き換えればそのまま動作するでしょう。
No.3
- 回答日時:
微調整が必要かもしれませんが、以下でどうでしょうか。
Private Sub 支店名_Change()
Dim wrow As Long
支店コード.Value = ""
With Worksheets("銀行コード")
For wrow = 2 To .Cells(Rows.Count, 1).End(xlUp).row
If .Cells(wrow, 1).Value = 銀行名.Value And .Cells(wrow, 3).Value = 支店名.Value Then
支店コード.Value = .Cells(wrow, 4).Value
Exit Sub
End If
Next
End With
End Sub
No.1
- 回答日時:
>下記記述にどのような追加をすれば可能でしょうか?
支店が1店舗のみなら可能ですが・・複数あればダメですね
>テキストボックス3に支店名を入力し、テキストボックス4に銀行に対応した支店コードを自動入力
これなら、Private Sub 銀行名_Change()と同じようにコントロールのイベントを作成すれば可能です
テキストボックス3 コントロール名が分からないですけれど
支店名・支店コードとして
Private Sub 銀行名_Change()の内容の参照列をずらすだけ
Private Sub 支店名_Change()
Dim r As Range
Set r = Worksheets("銀行コード").Columns("C:C").Find _
(支店名.Value, LookIn:=xlValues, lookat:=xlWhole)
If Not r Is Nothing Then
支店コード.Value = r.Offset(0, 1).Value
Else
支店コード.Value = ""
End If
ちなみにPrivate Sub 銀行名_Change()でやるべきは、銀行コードの出力と支店名の登録でしょう
シート名Sheet1なのか銀行コードなのかコントロール名や複数支店名が
あるかどうか、ある場合の表組も分からないので ここ迄としますね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームに2つのコンボボックス銀行名「ConboBox1」支店名を「ConboBox2」とし 4 2022/08/03 17:34
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) VBAで日付入力しているのですが 4 2023/03/02 11:25
- Excel(エクセル) 列の最終行に新たに入力されたらその値を自動参照 1 2023/01/21 09:59
- Visual Basic(VBA) エクセルVBAのコードで質問です。 下のコードはJ16の文字列をB3を起点とする範囲から探して、見つ 5 2023/04/07 11:07
- Visual Basic(VBA) オブジェクトが見つかりません 1 2023/06/24 19:43
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Excel(エクセル) エクセルのイベントプロシージャーでF列の最終行のセルの入力をトリガーにしたいのですが 1 2022/10/14 09:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
1日に1人がこなせるプログラム...
-
pythonにてseleniumを使うも、...
-
access2003 クエリSQL文に...
-
chatgptでつくってもらったコー...
-
Accessの文字列部分一致を合計...
-
ExcelのVBAコードについて教え...
-
GrapeCityのSpreadについて
-
欠番の抽出について
-
【VB6】実行ファイルとした後、...
-
HTML電卓で1文字消す方法
-
Nullの使い方が不正です。
-
ペンダントライトのコードの色...
-
JANコードとPOSコードは同じ?
-
ユーザーフォームで銀行に対応...
-
Exel VBA 別ブックから該当デ...
-
ACCESSユニオンクエリでORDER B...
-
1、Rstudioで回帰直線を求める...
-
PreviewKeyDownイベントが2回...
-
videopadについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フィルターかけた後、重複を除...
-
pythonにてseleniumを使うも、...
-
ExcelのVBAコードについて教え...
-
access2003 クエリSQL文に...
-
1日に1人がこなせるプログラム...
-
ExcelのVBAコードについて教え...
-
Exel VBA 別ブックから該当デ...
-
chatgptでつくってもらったコー...
-
PreviewKeyDownイベントが2回...
-
JavaScriptの定数名が取り消し...
-
1、Rstudioで回帰直線を求める...
-
JANコードとPOSコードは同じ?
-
JavaScript|特定URLだった時、...
-
ACCESSユニオンクエリでORDER B...
-
特定行の背景色を変えたいのですが
-
変数名「cur」について
-
エクセルに見えない文字(JISX0...
-
COBOLの文法
-
Gitのクローンについて
-
Outlook VBAについて
おすすめ情報