
エクセルVBAのユーザーフォームで、コンボボックスで選択したものをコマンドボタンを押すことで、同じフォーム上のテキストボックスに表示するところまではできたのですが、同じテキストボックスに追記する形でコンボボックスで選択したものを表示したいのですが、可能でしょうか。テキストボックスは複数行表示できるようにプロパティのMultiLineはTlueに設定することはしたのですが、2回目以降コンボボックスで選択した後コマンドボタンを押してもそのまま上書きするようなコードしかわかりません。
テキストボックスに、20回目まで選択項目を追加表示し、最後にはエクセルのシートにそのデータをコピーしたいのです。果たして、そのようなことは可能でしょうか。可能であればどのように記述すればよいのでしょうか。ぜひ諸先輩方のお知恵をお貸しください。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
テキストボックスの場合、改行コードも文字としてあつかっているので、区切りを自分で探す必要があります。
リストボックスだとlstBox.Items(i)のように1行ずつを簡単に抜き出すことができます。
エクセルのセルに順にセットするには
for i = 1 to 20
ActiveWorksheet.Range(1,i).Value = lstBox.Items(i)
next
のようになります。
20回までの制限はlstBox.Items.Countで登録済みのデータの数を確認できますので、IF文で判断すればできます。
No.3
- 回答日時:
#2さんも言ってますが、私も ListBox でやる方が楽に思えます。
下記はサンプルです。
試すなら新規ブックの UserForm に ComboBox1 ,ListBox1 ,CommandButton1 を置き、下記をコピペして実行します。
ListBox が5行になるとアクティブセルに転記します。
'--------------------------------------------------------------------
Private Sub UserForm_Initialize()
For i = 65 To 90
ComboBox1.AddItem Chr(i) '適当に文字を入れる
Next i
End Sub
'--------------------------------------------------------------------
Private Sub CommandButton1_Click()
If ComboBox1.Value <> "" Then ListBox1.AddItem ComboBox1.Value
If ListBox1.ListCount = 5 Then
Range(ActiveCell, ActiveCell.Offset(4, 0)) = ListBox1.List
ListBox1.Clear
End If
End Sub
No.2
- 回答日時:
txtBox.Text = txtBox.Text & CRLF & cmbBox.Text
でいけそうな気がします。CRLFは改行コードでvbCRなどの定義があるはずです。はっきり覚えていません。
テキストボックスではなく、リストボックスを使うほうがよさそうな気がします。
ありがとうございます。
vbCrの記述でテキストボックス内で
改行されて表示されました!
======
Private Sub CommandButton22_Click()
TextBox17.Value = TextBox17.Value & vbCr & ComboBox5.Value
TextBox18.Value = TextBox18.Value & vbCr & TextBox15.Value
TextBox19.Value = TextBox19.Value & vbCr & TextBox16.Value
End Sub
======
入力はコマンドボックスが1ツ、テキストボックスが2つで
この値が返されるテキストボックスは3つあり、
それぞれのテキストボックスに表示された内容を
打った人が今まで何を何回選んだかがわかるように
テキストボックスに累計で表示したかったのです
最終的には別のコマンドボタンでシート上のセルに各テキストボックス毎に
Text17はA1からA2、A3・・・
Text18はB1からB2、B3・・・
Text19はC1からC2、C3・・・
のようにコピーしたいのです
この改行された行を行ごとにセルにコピーするには
どのようなコードになりますでしょうか
また、この追加表示は最高20回までの追加で止めるには
どのようなコードがいいのでしょう(可能なのかどうかもわかりません)
仕事上どうしても、ユーザーフォーム使ったこの様な
入力を作る必要があり、VBAの専門書を基礎編、応用編
関数コントロール編の三冊買い込んで急遽勉強していますが根本がまだ理解し切れていないので自分では考え付きません。
ぜひよろしくお願いします
No.1
- 回答日時:
現在のプログラムがどうなっているのか記述してほしい。
基本的には、コンボボックス.textをテキストボックス.textに追記するだけだと思いますのでできると思います。
text1.text = text1.text + combo1.text
位の式を入れてやればいいのではないかな。
ありがとうございます。
コードはごく単純に、
text.1.value=combo1.value
のような記述しか思いつきませんでした。
教えていただいた+で続ける記述ですと改行せずに
テキストボックスに続いて表示されてしまいました
うーんまったくの初心者なのでなぜだかもわかりません・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ユーザーフォームの書き出しで追加のご相談 ユーザーフォームの値をシートに書き出す際、コードが表示され 2 2022/08/05 10:58
- Visual Basic(VBA) Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。 3 2023/03/19 18:31
- Access(アクセス) Accessの参照フィールドの列がずれてしまいます 1 2023/07/19 15:00
- Visual Basic(VBA) EXCEL VBA データベースの内容をユーザーフォームに表示したい。 5 2023/02/14 11:40
- Visual Basic(VBA) ExcelVBAでユーザーフォームでテキストボックスなどからセルに連続して入力するコーディングの際の 2 2022/06/29 22:51
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Access(アクセス) Access DTPickerの初期表示月を変えたい 1 2022/08/02 08:55
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
このQ&Aを見た人はこんなQ&Aも見ています
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
-
4
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
7
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
10
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
11
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
12
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
13
VBAでテキストボックス内の編集をする方法
Visual Basic(VBA)
-
14
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
15
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
16
別のユーザーフォームのコマンドボタンを押す
Visual Basic(VBA)
-
17
VBA コンボボックスで選んだものを各テキストボックスに反映
Visual Basic(VBA)
-
18
入力した値をコンボボックスにすぐに反映させる方法
Excel(エクセル)
-
19
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
20
ラベルを表示したり非表示にしたりしたい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
VB2010 TextBoxの数字の表示...
-
VBでの入力値制限について
-
ユーザーフォームへのデータ入...
-
コンボボックスからテキストボ...
-
visual basic初心者です。 visu...
-
VBAのユーザーフォームで、テキ...
-
テキストボックスにカーソルを...
-
VBAのフォーム カーソル移動
-
整数かどうかチェックする
-
VB2005テキストボックスへのコ...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
ExcelのVBAで文章にある複数の...
-
チェックボックスを操作できな...
-
VB.NETでのイベントの途中終了
-
Picture1.Printとしてもpicture...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
VBAで入力数値について
-
visual basic初心者です。 visu...
-
【C#】コンボボックスにおけるS...
-
コンボボックスからテキストボ...
-
Vba テキストボックスの文字列...
-
visual studio 2008 C# で、値...
-
テキストボックスを空白にする方法
-
Excel ユーザーフォームで計算 ...
-
VBAのユーザーフォームで、テキ...
-
VB2010 TextBoxの数字の表示...
-
TextBoxの内容を右寄せ
-
テキストボックスとカーソルの制御
-
VBでローマ字入力とかな入力を...
-
VB2005テキストボックスへのコ...
-
ACCESS VBA 文字抽出について ...
-
テキストボックスにカーソルを...
おすすめ情報