
VBA初心者です。
どうしても分からないので、分かる方教えていただけませんか?
現在、ユーザーフォームを利用して見積作成フォームを作成しております。
画像のように、コンボボックス・テキストボックスが20行ほど並びます。
やりたい事は、
①コンボボックスの値は商品名や単価が変化することがありますので、出来ればSheet1(商品)から取り出したい。
②コンボボックスには、Sheet1(商品)のA列(商品名)C列(単価)の2列を表示したい。
③コンボボックスで商品名を選択したら、自動で在庫用テキストボックス・単価用テキストボックス・備考用テキストボックスすべてに、Sheet1(商品)の内容が入力されるようにしたい。
上記のようなことは可能なのでしょうか?
いろいろと調べてコードを何回も書いてみましたが、自分の力では出来ませんでした。
どなたか、上記が出来るコードを教えていただけませんでしょうか?
よろしくお願いいたします。

No.5ベストアンサー
- 回答日時:
No.3 の訂正です。
誤動作はしないと思いますが念の為-----------------------------------------------------
ComboBox1.Value = .Cells(行, 1)
TextBox1.Value = .Cells(行, 2)
TextBox2.Value = .Cells(行, 3)
TextBox3.Value = .Cells(行, 4)
-----------------------------------------------------
は
-----------------------------------------------------
ComboBox1.Value = .Cells(行, 1).Value
TextBox1.Value = .Cells(行, 2).Value
TextBox2.Value = .Cells(行, 3).Value
TextBox3.Value = .Cells(行, 4).Value
-----------------------------------------------------
に直しておいてください。
No.4
- 回答日時:
No.3 の追補
このサイトはどうも複数の連続したスペースを1つのスペースにしてしまうようです。
「ComboBox1.AddItem .Cells(行, 1).Value & " " & Format(.Cells(行, 3).Value, "\\#,##0;-\\#,##0")」の「" "」の部分のスペースを見やすいように適当にふやしてみてください。
No.3
- 回答日時:
No.1 のお礼について
「コンボボックス表示の際にwidthか何かで区切れないでしょうか?」は「& " " &」でスペースで区切っているのですが…
それも含めて改造案です。
☆ 標準モジュールに以下のようにパブリック変数を定義しておきます。
-----------------------------------------------------------------------------------------
Public 行 As Long
Sub test()
UserForm1.Show
End Sub
-----------------------------------------------------------------------------------------
☆ フォームには
-----------------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
If ComboBox1.ListIndex < 0 Then Exit Sub
行 = ComboBox1.ListIndex + 2
Application.EnableEvents = False
With Sheets("Sheet1")
ComboBox1.Value = .Cells(行, 1)
TextBox1.Value = .Cells(行, 2)
TextBox2.Value = .Cells(行, 3)
TextBox3.Value = .Cells(行, 4)
End With
Application.EnableEvents = True
End Sub
-----------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
With Sheets("Sheet1")
For 行 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.AddItem .Cells(行, 1).Value & " " & Format(.Cells(行, 3).Value, "\\#,##0;-\\#,##0")
Next
End With
End Sub
-----------------------------------------------------------------------------------------
No.1
- 回答日時:
こんな事でしょうか?
-------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Dim 行 As Long
With Sheets("Sheet1")
For 行 = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
ComboBox1.AddItem .Cells(行, 1).Value & " " & .Cells(行, 3).Value
Next
End With
End Sub
-------------------------------------------------------------------------------
Private Sub ComboBox1_Change()
With Sheets("Sheet1")
TextBox1.Value = .Cells(ComboBox1.ListIndex + 2, 2)
TextBox2.Value = .Cells(ComboBox1.ListIndex + 2, 3)
TextBox3.Value = .Cells(ComboBox1.ListIndex + 2, 4)
End With
End Sub
-------------------------------------------------------------------------------
回答ありがとうございます。
1つ、コンボボックス内にはA列(商品名)C列(単価)を表示したいのですが、選択した際には、コンボボックス内はA列(商品名)だけの値にしたいです。それと、コンボボックス表示の際にwidthか何かで区切れないでしょうか?
2列表示するのは、自分が単価も確認したいためだけのものです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【VBA】複数行あるカンマ区切りのデータを全て縦に一列に並べたい 5 2022/04/13 17:03
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Excel(エクセル) Excel 関数 vlookupなどの使い方について質問です。 シート1に品番、商品名、単価、発注条 6 2022/06/15 19:16
- Excel(エクセル) ある文字を含む際に、値を返す数式についてです 5 2022/08/28 16:58
- その他(Microsoft Office) Excelで該当しない項目(#N/Aの商品名)を簡単に表示・抽出させる方法についてです 1 2022/08/25 22:12
- Excel(エクセル) SUMIFSと日付変換 10 2023/04/16 15:38
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Visual Basic(VBA) VBA For Each 〜 複数条件について 3 2022/10/20 20:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
Excel VBAでオートフィルタで抽...
-
EXCEL VBAでA列にある空白行よ...
-
オートフィルターの複数条件検...
-
evcel VBAについて
-
【VBA】条件に一致しない行を削...
-
VBAで入力の結果を他のセルに反...
-
Excel VBA オートフィルタの結...
-
VB.net
-
エクセルで空白行を削除する ...
-
エクセルで階層図を作る方法
-
各個体に対する平均値の自動計...
-
数値に見えるものはすべて数値...
-
excel2021で実行できないマクロ...
-
VBAで保存しないで閉じると空の...
-
Excel マクロの編集がグレーに...
-
WPSOffice_マクロの有効化について
-
複数のマクロボタンをまとめて...
-
エクセルで、「いいね」のよう...
-
【Excel VBA】マクロでExcel自...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
Excel VBAでオートフィルタで抽...
-
数値に見えるものはすべて数値...
-
VB.net
-
列から特定の文字列検索→該当以...
-
エクセルで空白行を削除する ...
-
Excel マクロ 検索結果を別シ...
-
エクセルのデータがない行には...
-
【マクロ】A列最終行までを、カ...
-
【VBA】条件に一致しない行を削...
-
各個体に対する平均値の自動計...
-
エクセルのVBAで指定した行数の...
-
EXCEL VBAでA列にある空白行よ...
-
VBAでの重複データに色付け
-
空白を複数行一気に挿入するには?
-
エクセルで階層図を作る方法
-
vbaエクセルマクロについて she...
-
【至急】Excel 同一人物の情報...
-
Excel97 指定した行だけマク...
おすすめ情報