ここから本文です

マクロVBA初心者です。 Excelでユーザーフォームを初めて作成してみました。 ...

kn1********さん

2019/8/2121:46:18

マクロVBA初心者です。
Excelでユーザーフォームを初めて作成してみました。

新規登録フォームをインターネットで調べながら作成したのですが、簡潔なコードにできるか悩んでいます。
実際に作成したいものは、TextBox

とComboBoxが10以上となるものです。
Excelの管理表にはA列からL列まで入力したいと考えています。ForNext文での作成を使用するのでしょうか?

初めてなので、わかりにくいところがあると思いますが、宜しくお願い致します。
登録用のコードは、以下のものとなってます。

x = Cells(Rows.Count, 1).End(xlUp).Row
Cells(x + 1, 1) = Application.WorksheetFunction.Max(Columns(1)) + 1

Cells(x + 1, 2) = Me.TextBox1.Value
Cells(x + 1, 3) = Me.ComboBox1.Value
Cells(x + 1, 4) = Me.TextBox2.Value
Cells(x + 1, 5) = Me.TextBox3.Value
Cells(x + 1, 6) = Me.TextBox4.Value
Cells(x + 1, 7) = Me.TextBox5.Value
Cells(x + 1, 8) = Me.TextBox6.Value
Cells(x + 1, 9) = Me.TextBox7.Value
Cells(x + 1, 10) = Me.TextBox8.Value
Cells(x + 1, 11) = Me.ComboBox2.Value
Cells(x + 1, 12) = Me.TextBox9.Value

Me.TextBox1.Value = ""
Me.ComboBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
Me.TextBox7.Value = ""
Me.TextBox8.Value = ""
Me.ComboBox2.Value = ""
Me.TextBox9.Value = ""

閲覧数:
21
回答数:
1

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

tra********さん

2019/8/2122:01:03

10個程度の項目なら、↓のようなので十分でしょうね。
速度は速くなるはず。

x = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range(Cells(x, 1), Cells(x, 12)).Value = Array( _
Application.WorksheetFunction.Max(Columns(1)) + 1, _
Me.TextBox1.Value, _
Me.ComboBox1.Value, _
Me.TextBox2.Value, _
Me.TextBox3.Value, _
Me.TextBox4.Value, _
Me.TextBox5.Value, _
Me.TextBox6.Value, _
Me.TextBox7.Value, _
Me.TextBox8.Value, _
Me.ComboBox2.Value, _
Me.TextBox9.Value)

Me.TextBox1.Value = ""
Me.ComboBox1.Value = ""
Me.TextBox2.Value = ""
Me.TextBox3.Value = ""
Me.TextBox4.Value = ""
Me.TextBox5.Value = ""
Me.TextBox6.Value = ""
Me.TextBox7.Value = ""
Me.TextBox8.Value = ""
Me.ComboBox2.Value = ""
Me.TextBox9.Value = ""

こういうテクニック
https://www.moug.net/tech/exvba/0090067.html
https://e-vba.com/textboxhensuu/
を使うなら、もっとコントロールの名前付けに工夫が必要そうですね。

質問した人からのコメント

2019/8/21 23:04:21

ご回答ありがとうございます。

コントロールの名前付けで処理することもできるのですね。
いただいたコードでうまくできました。

難しそうですが、頑張ってみます。

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる