エクセルVBAのユーザーフォームで、コンボボックスで選択したものをコマンドボタンを押すことで、同じフォーム上のテキストボックスに表示するところまではできたのですが、同じテキストボックスに追記する形でコンボボックスで選択したものを表示したいのですが、可能でしょうか。テキストボックスは複数行表示できるようにプロパティのMultiLineはTlueに設定することはしたのですが、2回目以降コンボボックスで選択した後コマンドボタンを押してもそのまま上書きするようなコードしかわかりません。
テキストボックスに、20回目まで選択項目を追加表示し、最後にはエクセルのシートにそのデータをコピーしたいのです。果たして、そのようなことは可能でしょうか。可能であればどのように記述すればよいのでしょうか。ぜひ諸先輩方のお知恵をお貸しください。よろしくお願いします。
No.1
- 回答日時:
現在のプログラムがどうなっているのか記述してほしい。
基本的には、コンボボックス.textをテキストボックス.textに追記するだけだと思いますのでできると思います。
text1.text = text1.text + combo1.text
位の式を入れてやればいいのではないかな。
ありがとうございます。
コードはごく単純に、
text.1.value=combo1.value
のような記述しか思いつきませんでした。
教えていただいた+で続ける記述ですと改行せずに
テキストボックスに続いて表示されてしまいました
うーんまったくの初心者なのでなぜだかもわかりません・・・
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.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.4ベストアンサー
- 回答日時:
テキストボックスの場合、改行コードも文字としてあつかっているので、区切りを自分で探す必要があります。
リストボックスだとlstBox.Items(i)のように1行ずつを簡単に抜き出すことができます。
エクセルのセルに順にセットするには
for i = 1 to 20
ActiveWorksheet.Range(1,i).Value = lstBox.Items(i)
next
のようになります。
20回までの制限はlstBox.Items.Countで登録済みのデータの数を確認できますので、IF文で判断すればできます。
お探しの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も見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
【VB.NET】テキストボックスに...
-
アクセスできない保護レベルエ...
-
VBSのプログラム
-
ユーザーフォームへのデータ入...
-
テキストボックスを空白にする方法
-
INPUTタグのカンマ対策
-
visual basic初心者です。 visu...
-
Excel ユーザーフォームで計算 ...
-
VB.NETのテキストボックスで、...
-
VB2005テキストボックスへのコ...
-
他のフォームから別のフォーム...
-
【VB6.0】 あるフォームから他...
-
perlによるxmlファイルの取得
-
タイムアウトする仕組みを作りたい
-
C#のループでtextboxに値を入れ...
-
sublimit textっていうエディタ...
-
三項でたとえば交換って
-
C言語のサフィックスについて
-
VS CodeでTEXファイルにPDF形式...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
【VB.NET】テキストボックスに...
-
Excel ユーザーフォームで計算 ...
-
VBでの入力値制限について
-
ACCESS 除算での小数点切上げ方法
-
テキストボックスを空白にする方法
-
【C#】コンボボックスにおけるS...
-
TEXTBOXの表示形式の変...
-
visual studio 2008 C# で、値...
-
テキストボックス1の値に対する...
-
256色で任意の色を作成する時、...
-
VBAのフォーム カーソル移動
-
VBAのユーザーフォームで、テキ...
-
Vba 電卓のテキストボックスに...
-
VBSのプログラム
-
整数かどうかチェックする
おすすめ情報