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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBA データベースの内容をユーザーフォームに表示したい。 5 2023/02/14 11:40
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- Excel(エクセル) 【vba】日付の形式が勝手に変わってしまう。 1 2022/09/29 10:54
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Access(アクセス) access フォーム 大分類、小分類 1 2022/08/11 18:03
- その他(ギャンブル) BOって何歳でも始めれるんですか?当たる確率的には競馬より全然高い50%とかなんですか? 2 2022/09/06 15:13
- Visual Basic(VBA) 複数指定セルの可視セルのみを別シートに転記するVBAについて 2 2022/05/27 21:19
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
-
DoEventsが必要な理由について
-
UWSCの終了の仕方
-
範囲指定したセルを1つずつ飛...
-
プログラミングについて。 1つ...
-
VBA Dir関数でファイルをループ...
-
VBA Boxが空白の場合のメッセー...
-
vb.netからエクセル関数書き込み
-
For文を使った九九表の作成
-
素数の個数を求めるプログラミング
-
アクティブセルから、A列最終行...
-
EXCEL VBA ユーザーフォームの...
-
テキストボックスの名前に変数...
-
フラグについて
-
ExcelVBA FindNextを使用して条...
-
エディットボックスのテキスト...
-
pythonでリストの要素を小さい...
-
COBOLプログラム
-
アップルループについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
どなたかこのプログラミングを...
-
VBAでの一時停止と再開の方法
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
-
GIFアニメをループさせたくない
-
Escキーを押すと、中断する時と...
-
DOSコマンドのループ内のTIMEコ...
-
CSVファイルの特定の行だけを読...
-
アクティブセルから、A列最終行...
-
vb.netからエクセル関数書き込み
-
範囲指定したセルを1つずつ飛...
-
テキストボックスの名前に変数...
-
乱数の桁数指定、または範囲指定。
-
「偶数・奇数の和」のフローチ...
-
vbscriptでIE自動入力(途中で...
おすすめ情報
その通りです。
しかし、データベースの登録だとA1、B1、C1....のほうがいいですね。。。
TEXTBOX1→A1
TEXTBOX2→B1
TEXTBOX3→C1
TEXTBOX4→D1
COMBOBOX1→E1
COMBOBOX2→F1
TEXTBOX5→G1
TEXTBOX6→H1
TEXTBOX7→I1
COMBOBOX3→J1
で登録したいです。