
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
エクセルマクロ行削除
-
エクセルマクロでグループごと...
-
テキストファイル読み込みにお...
-
【VBA】条件に一致しない行を削...
-
エクセルで行を挿入して小計合...
-
マクロで最終行を取得してコピ...
-
Excel マクロ 検索結果を別シ...
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
マクロの保存先、開いてるすべ...
-
VBAで保存しないで閉じると空の...
-
【Excel】マクロの保存先について
-
エクセル関数>参照ファイル名...
-
エクセル ボタンに設定したマク...
-
エクセルのvbaにて thisworkboo...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
EXCELのマクロが他のパソコンで...
-
エクセルでマクロ(Excel 4.0)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
数値に見えるものはすべて数値...
-
【VBA】条件に一致しない行を削...
-
Excel マクロ 検索結果を別シ...
-
Excel VBAでオートフィルタで抽...
-
エクセルのデータがない行には...
-
VB.net
-
マクロで最終行を取得してコピ...
-
列から特定の文字列検索→該当以...
-
【VBA】条件に一致しない行を削...
-
Access2003レポート:最終ペー...
-
エクセルで空白行を削除する ...
-
【マクロ】A列最終行までを、カ...
-
Excel97 指定した行だけマク...
-
マクロにて指定の文字間の文字...
-
vbaエクセルマクロについて she...
-
エクセルのVBAで指定した行数の...
-
複数セルの入れ替え方法 excel vba
-
各個体に対する平均値の自動計...
-
エクセルで階層図を作る方法
-
EXCEL VBAでA列にある空白行よ...
おすすめ情報