Excel VBA 質問スレッド №2035 (解決済)
コマンドボタンで入力方法変更について
投稿者 : 鈴木 初心者 投稿日時 : 2024/10/24(Thu) 11:46:02 OS : Windows 10 EXCEL : Office 365
質問よろしくお願いいたします。
現在、別シート(営業所リスト)に営業所名だけを入れており
フォームで立ち上げ あ行 か行 ・・・のコマンドボタンを押すと
営業所リストにある営業所名を選んでテキストボックスAに反映するようになっております。
営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
よろしくお願いいたします。
■現在の仕様
A B C D E F G H I J
1 あ か さ た な は ま や ら わ
2 A営業所 B営業所 C営業所 D営業所 E営業所 F営業所 G営業所 H営業所 I営業所 J営業所
3 1営業所 2営業所 3営業所 4営業所 5営業所 6営業所 7営業所 8営業所 9営業所 10営業所
■変更後の営業所リスト
A B C D E F G H I J
1 あ 住所 か 住所 さ 住所 た 住所 な 住所
2 A営業所 A住所 B営業所 B住所 C営業所 C住所 D営業所 D住所 E営業所 E住所
3 1営業所 1住所 2営業所 2住所 3営業所 3住所 4営業所 4住所 5営業所 5住所
質問よろしくお願いいたします。
現在、別シート(営業所リスト)に営業所名だけを入れており
フォームで立ち上げ あ行 か行 ・・・のコマンドボタンを押すと
営業所リストにある営業所名を選んでテキストボックスAに反映するようになっております。
営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
よろしくお願いいたします。
■現在の仕様
A B C D E F G H I J
1 あ か さ た な は ま や ら わ
2 A営業所 B営業所 C営業所 D営業所 E営業所 F営業所 G営業所 H営業所 I営業所 J営業所
3 1営業所 2営業所 3営業所 4営業所 5営業所 6営業所 7営業所 8営業所 9営業所 10営業所
Option Explicit 'SupplierForm1 Private Sub CommandButton1_Click() 'あボタン ListBox1.Clear Call MyListUp(1) End Sub Private Sub CommandButton2_Click() 'かボタン ListBox1.Clear Call MyListUp(2) End Sub Private Sub CommandButton3_Click() 'さボタン ListBox1.Clear Call MyListUp(3) End Sub Private Sub CommandButton4_Click() 'たボタン ListBox1.Clear Call MyListUp(4) End Sub Private Sub CommandButton5_Click() 'なボタン ListBox1.Clear Call MyListUp(5) End Sub Private Sub CommandButton6_Click() 'はボタン ListBox1.Clear Call MyListUp(6) End Sub Private Sub CommandButton7_Click() 'まボタン ListBox1.Clear Call MyListUp(7) End Sub Private Sub CommandButton8_Click() 'やボタン ListBox1.Clear Call MyListUp(8) End Sub Private Sub CommandButton9_Click() 'らボタン ListBox1.Clear Call MyListUp(9) End Sub Private Sub CommandButton10_Click() 'わボタン ListBox1.Clear Call MyListUp(10) End Sub Private Sub MyListUp(ByVal MyC As Long) Dim i As Long Load SupplierForm01 With Worksheets("営業所リスト") SupplierForm01.Caption = "「 " & .Cells(1, MyC) & " 」の選択" For i = 2 To .Cells(.Rows.Count, MyC).End(xlUp).Row SupplierForm01.ListBox1.AddItem .Cells(i, MyC) Next i End With End Sub Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MainForm.TextBoxA.Text = Me.ListBox1.Text Unload Me End Sub
■変更後の営業所リスト
A B C D E F G H I J
1 あ 住所 か 住所 さ 住所 た 住所 な 住所
2 A営業所 A住所 B営業所 B住所 C営業所 C住所 D営業所 D住所 E営業所 E住所
3 1営業所 1住所 2営業所 2住所 3営業所 3住所 4営業所 4住所 5営業所 5住所
スポンサーリンク
[返信 1] Re : コマンドボタンで入力方法変更について
投稿者 : さんこう 投稿日時 : 2024/10/24(Thu) 13:09:22
>営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
「営業所リスト」から、TextBoxAに設定した営業所名を探して、
その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
>営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
「営業所リスト」から、TextBoxAに設定した営業所名を探して、
その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
[返信 2] Re : コマンドボタンで入力方法変更について
投稿者 : 鈴木 初心者 投稿日時 : 2024/10/24(Thu) 14:39:14
■[返信 1] さんこうさん(2024-10-24 13:09:22)の記事
> >営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
>
> 「営業所リスト」から、TextBoxAに設定した営業所名を探して、
>
> その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
>
ご返答ありがとうございます。
> 「営業所リスト」から、TextBoxAに設定した営業所名を探して、
>
> その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
下記のどの部分をどのように変更するのかわかりません。
大変恐れ入りますが教えていただけますでしょうか。
よろしくお願いいたします。
■[返信 1] さんこうさん(2024-10-24 13:09:22)の記事
> >営業所だけではなく 営業所の住所もテキストボックスBに反映するようにしたいです。
>
> 「営業所リスト」から、TextBoxAに設定した営業所名を探して、
>
> その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
>
ご返答ありがとうございます。
> 「営業所リスト」から、TextBoxAに設定した営業所名を探して、
>
> その右隣セルの値をTextBoxBに反映させればよろしいかと思います。
下記のどの部分をどのように変更するのかわかりません。
大変恐れ入りますが教えていただけますでしょうか。
よろしくお願いいたします。
Private Sub MyListUp(ByVal MyC As Long)'営業所リストからデータを読み取る Dim i As Long Load SupplierForm01 With Worksheets("営業所リスト") SupplierForm01.Caption = "「 " & .Cells(1, MyC) & " 」の選択" For i = 2 To .Cells(.Rows.Count, MyC).End(xlUp).Row SupplierForm01.ListBox1.AddItem .Cells(i, MyC) Next i End With End Sub Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)'上記で選ばれたテキストをテキストボックスに反映する MainForm.TextBox3.Text = Me.ListBox1.Text Unload Me End Sub
[返信 3] Re : コマンドボタンで入力方法変更について
投稿者 : さんこう 投稿日時 : 2024/10/24(Thu) 15:01:55
>下記のどの部分をどのように変更するのかわかりません。
>Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)'上記で選ばれたテキストをテキストボックスに反映する
> MainForm.TextBox3.Text = Me.ListBox1.Text
ここへ追加するといいでしょう
> Unload Me
>End Sub
参考になれば。
・TextBoxAに設定した営業所名を探す
Findメソッドを使うのがよろしいかと思います。
<VBA Findメソッド>
https://www.google.com/search?q=vba+find%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
・右隣セルの値
Offsetプロパティで取得できます。
<VBA Offsetプロパティ>
https://www.google.com/search?q=VBA+Offset%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3
>下記のどの部分をどのように変更するのかわかりません。
>Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)'上記で選ばれたテキストをテキストボックスに反映する
> MainForm.TextBox3.Text = Me.ListBox1.Text
ここへ追加するといいでしょう
> Unload Me
>End Sub
参考になれば。
・TextBoxAに設定した営業所名を探す
Findメソッドを使うのがよろしいかと思います。
<VBA Findメソッド>
https://www.google.com/search?q=vba+find%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
・右隣セルの値
Offsetプロパティで取得できます。
<VBA Offsetプロパティ>
https://www.google.com/search?q=VBA+Offset%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3
[返信 4] Re : コマンドボタンで入力方法変更について
投稿者 : 鈴木 初心者 投稿日時 : 2024/10/24(Thu) 16:33:24
ありがとうございます。
教えていただいたアドレス先を見てみました。
どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
元々のVBA文が教えていただいたのをそのまま貼り付けているため
プログラムの基礎がわかっておりません。
申し訳ございません。
このような意味なのだと思いました。
よろしくお願いいたします。
■[返信 3] さんこうさん(2024-10-24 15:01:55)の記事
> >下記のどの部分をどのように変更するのかわかりません。
>
> >Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)'上記で選ばれたテキストをテキストボックスに反映する
> > MainForm.TextBox3.Text = Me.ListBox1.Text
>
> ここへ追加するといいでしょう
>
> > Unload Me
> >End Sub
>
>
> 参考になれば。
>
> ・TextBoxAに設定した営業所名を探す
>
> Findメソッドを使うのがよろしいかと思います。
>
> <VBA Findメソッド>
> https://www.google.com/search?q=vba+find%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
>
>
> ・右隣セルの値
>
> Offsetプロパティで取得できます。
>
> <VBA Offsetプロパティ>
> https://www.google.com/search?q=VBA+Offset%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3
>
>
ありがとうございます。
教えていただいたアドレス先を見てみました。
どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
元々のVBA文が教えていただいたのをそのまま貼り付けているため
プログラムの基礎がわかっておりません。
申し訳ございません。
Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean) MainForm.TextBoxA.Text = Me.ListBox1.Text MainForm.TextBoxB.Text = 'Findメソッドで営業所リストから営業所名を探す。Offsetプロパティで営業所名隣の住所を取得 Unload Me End Sub
このような意味なのだと思いました。
よろしくお願いいたします。
■[返信 3] さんこうさん(2024-10-24 15:01:55)の記事
> >下記のどの部分をどのように変更するのかわかりません。
>
> >Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)'上記で選ばれたテキストをテキストボックスに反映する
> > MainForm.TextBox3.Text = Me.ListBox1.Text
>
> ここへ追加するといいでしょう
>
> > Unload Me
> >End Sub
>
>
> 参考になれば。
>
> ・TextBoxAに設定した営業所名を探す
>
> Findメソッドを使うのがよろしいかと思います。
>
> <VBA Findメソッド>
> https://www.google.com/search?q=vba+find%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89
>
>
> ・右隣セルの値
>
> Offsetプロパティで取得できます。
>
> <VBA Offsetプロパティ>
> https://www.google.com/search?q=VBA+Offset%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3
>
>
[返信 5] Re : コマンドボタンで入力方法変更について
投稿者 : さんこう 投稿日時 : 2024/10/24(Thu) 16:50:27
>どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
「どのような内容なのかはわかった」のであれば、いろいろ試してみるといいでしょう。
>どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
「どのような内容なのかはわかった」のであれば、いろいろ試してみるといいでしょう。
Sub Test_Find() MsgBox Worksheets("営業所リスト").Cells.Find("A営業所") MsgBox Worksheets("営業所リスト").Cells.Find("A営業所").Offset(0, 1) End Sub
[返信 6] Re : コマンドボタンで入力方法変更について
投稿者 : 鈴木 初心者 投稿日時 : 2024/10/24(Thu) 17:25:48
さんこうさま
教えていただいたのを参考に色々と試させていただきます。
ありがとうございました。
■[返信 5] さんこうさん(2024-10-24 16:50:27)の記事
> >どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
>
> 「どのような内容なのかはわかった」のであれば、いろいろ試してみるといいでしょう。
>
>
> Sub Test_Find()
> MsgBox Worksheets("営業所リスト").Cells.Find("A営業所")
> MsgBox Worksheets("営業所リスト").Cells.Find("A営業所").Offset(0, 1)
> End Sub
>
>
>
>
さんこうさま
教えていただいたのを参考に色々と試させていただきます。
ありがとうございました。
■[返信 5] さんこうさん(2024-10-24 16:50:27)の記事
> >どのような内容なのかはわかったのですが、それをどのように活かすのかがわかりませんでした。
>
> 「どのような内容なのかはわかった」のであれば、いろいろ試してみるといいでしょう。
>
>
> Sub Test_Find()
> MsgBox Worksheets("営業所リスト").Cells.Find("A営業所")
> MsgBox Worksheets("営業所リスト").Cells.Find("A営業所").Offset(0, 1)
> End Sub
>
>
>
>
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2025-07-06 06:01:53 )