![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
EXCEL VBAについての質問です。
データベースの内容をユーザーフォームに表示したいです。
たとえばA1~A10セルの内容をテキストボックスやコンボボックス、リストボックスが含まれているユーザーフォームにループ等を使って表示させることは可能でしょうか。
TEXTBOX1
TEXTBOX2
TEXTBOX3
TEXTBOX4
COMBOBOX1
COMBOBOX2
TEXTBOX5
TEXTBOX6
TEXTBOX7
COMBOBOX3
後々追加があっても対応できるような方法を教えていただきたいです。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
気になるのは先の後者でのComboboxの使い方とか、抽出したデータレコード数が1つずつなのか複数なのか。
思えばComboboxはユーザーフォームを表示させる際に各コントロールの値は事前にセットしておいて、呼び出した際にそれを表示させるのであって値追加すると言うのはないのかも?
またレコード数を複数とするなら各コントロールでどのように表示させるのか?が混乱しそうなので、多分1つのデータ行を取り込み・編集・データ改編となるのかな?
一連の流れを記載してあったなら良かったのかも。
>後々追加があっても対応できるような方法
コントロールの追加と言う意味なのでしょうか?
No.4
- 回答日時:
DBからコントロールへデータを設定する場合は、コントロール毎に処理をわけて記述しないと、実現できません。
提示された例の場合、いかのようになります。
コマンドボタン1のクリックで実行するものとします。
Sheet1のA1~A10の内容を設定します。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim names As Variant
Dim cname As String
Dim i As Long
Dim j As Long
Dim flag As Boolean
names = Array("TextBox1", "TextBox2", "TextBox3", "TextBox4", "ComboBox1", "ComboBox2", "TextBox5", "TextBox6", "TextBox7", "ComboBox3")
For i = 0 To UBound(names)
cname = names(i)
Select Case TypeName(Controls(cname))
Case "TextBox"
Controls(cname).Text = ws.Cells(1 + i, 1).Value
Case "ComboBox", "ListBox"
flag = False
For j = 0 To Controls(cname).ListCount - 1
If Controls(cname).List(j) = ws.Cells(1 + i, 1).Value Then
Controls(cname).ListIndex = j
flag = True
Exit For
End If
Next
If flag = False Then
Controls(cname).AddItem ws.Cells(1 + i, 1).Value
Controls(cname).ListIndex = Controls(cname).ListCount - 1
End If
End Select
Next
End Sub
No.3
- 回答日時:
あ、逆でした。
Controls("ABC" & i ).Text = range("A" & i).value
ですね。
ただComboboxを使用する位置付けについて不明なので、その時はスル~っとね。
No.2
- 回答日時:
気になるのはComboboxって事前に値があってそれを表示したいの?
それとも新たに追加した上でそれを表示させたいの?
前者なら例えば
TEXTBOX1 ⇒ ABC1
TEXTBOX2 ⇒ ABC2
TEXTBOX3 ⇒ ABC3
TEXTBOX4 ⇒ ABC4
COMBOBOX1 ⇒ ABC5
COMBOBOX2 ⇒ ABC6
TEXTBOX5 ⇒ ABC7
TEXTBOX6 ⇒ ABC8
TEXTBOX7 ⇒ ABC9
COMBOBOX3 ⇒ ABC10
とコントロール名を変えれば
for i = 1 to 10
~= Controls("ABC" & i ).Text
next
でもいけるかもですけど、後々のメンテや引き継ぎを考えるとねぇ~。
お勧めしちゃまずいかな?
No.1
- 回答日時:
こんにちは
COMBOBOXにどう反映したいのか不明なので、種類によって分ける必要があるかも知れませんけれど・・
基本的にはこれじゃないの?
https://oshiete.goo.ne.jp/qa/13336246.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
エクセルで検索結果をユーザーフォームに表示したいのですが
Excel(エクセル)
-
Excel VBA ユーザーフォームのリストボックスにRecordSetの値を入れた際のラベル行
Visual Basic(VBA)
-
-
4
UserForm1.Showでエラーになります。
工学
-
5
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
6
ユーザーフォーム時間表示
Excel(エクセル)
-
7
Excel VBA ユーザーフォーム内のラベルにテキストボックスの小計を出す方法
Visual Basic(VBA)
-
8
エクセルをPDFで保存し、ファイル名はA1セルを参照するVBAの記述を教えてください。
Excel(エクセル)
-
9
ExcelVBA ユーザーフォーム
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
エクセルVBAのフォームを最...
-
VBAでユーザーフォームを再表示...
-
複数モニタ使用時のフォームの...
-
クリックイベントなのに、2回ク...
-
ACCESSのフォーム、開くんです...
-
Access VBA コントロールの参照...
-
ユーザーフォームのテキストボ...
-
Forms( )の使い方を教えて下さい。
-
C#でボタンクリックをキャンセル
-
Excelにて、ユーザーフォームで...
-
ユーザーフォームをWorkSheet(1...
-
C#で3つのプログラムができま...
-
Hideについて(.NET)
-
Access フォームが前面に表示さ...
-
ユーザーフォーム上に現在日時...
-
Microsoft Formsの「個人情報や...
-
ExcelVBAでユーザーフォームが...
-
Excel VBAで別のブックからユ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームを表示中にシ...
-
ExcelVBAのユーザーフォームの...
-
ユーザーフォームのテキストボ...
-
VBAでユーザーフォームを再表示...
-
Form_Load と Form_Activate の...
-
モーダルフォームとモードレス...
-
クリックイベントなのに、2回ク...
-
Hideについて(.NET)
-
エクセルVBAのフォームを最...
-
MSGBOXのフォント大きさ変更
-
Microsoft Formsの「個人情報や...
-
VBA(エクセル)のユーザー...
-
'ユーザーフォーム右上隅の[×...
-
【VBAユーザーフォームで閉じる...
-
Excelにて、ユーザーフォームで...
-
コントロールの存在確認
-
Accessで、一つのフォーム画面...
-
ユーザーフォーム上に現在日時...
-
ACCESSのフォーム、開くんです...
-
ユーザーフォームのラベルに時...
おすすめ情報