
EXCEL VBAについての質問です。
ユーザーフォームで複数の値をデータベースに登録したいです。
たとえばTEXTBOX1~10の値をA1セルからA10セルに入れるにはループ処理で登録できることが分かるのですが、以下のようにテキストボックスやコンボボックス、リストボックスが含まれているときはループ処理できるのでしょうか。
TEXTBOX1
TEXTBOX2
TEXTBOX3
TEXTBOX4
COMBOBOX1
COMBOBOX2
TEXTBOX5
TEXTBOX6
TEXTBOX7
COMBOBOX3
現在はA1にTEXTBOX1、A2にTEXTBOX2と指定しているのですが、途中でユーザーフォームの項目を増やしたいとなった時にすべてずらさなければならないため、他に良い方法はないか。。。と思い質問させていただきました。
ループでなくても構いませんので、後々追加があっても対応しやすい方法があれば教えていただきたいです。
No.2ベストアンサー
- 回答日時:
各コントールはControls("コンロール名")で参照可能です。
これを応用します。
以下は、コマンドボタン1がクリックされた時、
上記例のコントロールの内容を、Sheet1のA1~J1へ格納するサンプルです。
Private Sub CommandButton1_Click()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim names As Variant
Dim i As Long
names = Array("TextBox1", "TextBox2", "TextBox3", "TextBox4", "ComboBox1", "ComboBox2", "TextBox5", "TextBox6", "TextBox7", "ComboBox3")
For i = 0 To UBound(names)
ws.Cells(1, 1 + i).Value = Controls(names(i)).Text
Next
End Sub
No.1
- 回答日時:
ループ処理で
TEXTBOX1→A1
TEXTBOX2→A2
TEXTBOX3→A3
TEXTBOX4→A4
COMBOBOX1→A5
COMBOBOX2→A6
TEXTBOX5→A7
TEXTBOX6→A8
TEXTBOX7→A9
COMBOBOX3→A10
のようにA1~A10のセルに格納したいということでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBAでユーザーフォームを再表示させたい。
Excel(エクセル)
-
-
4
ユーザーフォームへのデータ入力を繰り返す方法
Visual Basic(VBA)
-
5
EXCEL VBA データベースの内容をユーザーフォームに表示したい。
Visual Basic(VBA)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
VBAでユーザーフォームを指定回数繰り返して入力を行う方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
WinAPI「MsgWaitForMultipleObj...
-
VBA for i=1 to lastrow
-
ダイアログのテキストにマウス...
-
「偶数・奇数の和」のフローチ...
-
UWSCの終了の仕方
-
多重ループの抜けだし方
-
UWSCに制限時間を付けたいです
-
アクティブセルから、A列最終行...
-
再帰関数のインライン展開
-
CSVファイルの特定の行だけを読...
-
Providence PEC-02 接続方法
-
ExcelVBA FindNextを使用して条...
-
VB2010でCSVファイルの読み込み
-
vb.netです。2次元配列の要素を...
-
エクセルの当番表を作っていま...
-
VBAの変数は何故「i」から始ま...
-
UWSCのスクリプトで行き詰って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
UWSCに制限時間を付けたいです
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
VBA for i=1 to lastrow
-
流れ図(フローチャート)が分か...
-
DOSコマンドのループ内のTIMEコ...
-
pythonでファイルのコメント行...
-
素数表について。
-
VBAでの一時停止と再開の方法
-
「偶数・奇数の和」のフローチ...
-
DoEventsが必要な理由について
-
vb.netです。2次元配列の要素を...
-
Do whileでExitせず、ループの...
-
ループフリー
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
おすすめ情報
その通りです。
しかし、データベースの登録だとA1、B1、C1....のほうがいいですね。。。
TEXTBOX1→A1
TEXTBOX2→B1
TEXTBOX3→C1
TEXTBOX4→D1
COMBOBOX1→E1
COMBOBOX2→F1
TEXTBOX5→G1
TEXTBOX6→H1
TEXTBOX7→I1
COMBOBOX3→J1
で登録したいです。