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も見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
コンボボックス or リストボックス (複数列表示→値の取得)
Visual Basic(VBA)
-
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
-
4
エクセル ユーザーフォームにオートシェープ(図形)を貼り付けるこは可能なのでしょうか?
Excel(エクセル)
-
5
Excel vbaで複数のテキストボックスの足し算
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロで最終行を取得してコピ...
-
エクセルで空白行を削除する ...
-
【至急】Excel 同一人物の情報...
-
VB.net
-
VBAで特定の行と一つ上の行を削...
-
Excel VBAでオートフィルタで抽...
-
マクロにて指定の文字間の文字...
-
エクセルのデータがない行には...
-
エクセルで階層図を作る方法
-
【VBA】条件に一致しない行を削...
-
数値に見えるものはすべて数値...
-
Excelで、マウスで範囲を選択し...
-
Excel マクロ 検索結果を別シ...
-
条件に合った行を削除するマク...
-
VBAで保存しないで閉じると空の...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセルで、「いいね」のよう...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
マクロで最終行を取得してコピ...
-
【VBA】条件に一致しない行を削...
-
エクセルで空白行を削除する ...
-
エクセルのデータがない行には...
-
【VBA】条件に一致しない行を削...
-
VB.net
-
Excel VBAでオートフィルタで抽...
-
列から特定の文字列検索→該当以...
-
Excel97 指定した行だけマク...
-
エクセルで階層図を作る方法
-
Excel 別ブックから該当データ...
-
VBAでの重複データに色付け
-
EXCEL VBAでA列にある空白行よ...
-
マクロにて指定の文字間の文字...
-
エクセルのVBAで指定した行数の...
-
Access2003レポート:最終ペー...
-
VBAで特定の行と一つ上の行を削...
-
各個体に対する平均値の自動計...
-
Excel マクロ 検索結果を別シ...
おすすめ情報