
エクセル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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
-
4
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
5
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
6
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
7
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
8
コンボボックス(最終行取得)
Visual Basic(VBA)
-
9
ExcelVBA コンボボックスに入力があったらリンクしてテキストボックスを更新したい
Access(アクセス)
-
10
ExcelVBAのユーザーフォームで一度保存したデータを同じフォームに呼び出して編集する方法
Visual Basic(VBA)
-
11
VBAでテキストボックス内の編集をする方法
Visual Basic(VBA)
-
12
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
13
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
14
VBAのリストボックスで、横スクロールバーを表示するには?
Visual Basic(VBA)
-
15
ユーザーフォームへのデータ入力を繰り返す方法
Visual Basic(VBA)
-
16
ExcelのComboboxでマウスのスクロールを有効にしたい
Excel(エクセル)
-
17
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
18
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
19
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで入力数値について
-
アクセスできない保護レベルエ...
-
visual basic初心者です。 visu...
-
GetNextWindowがDLLファイルUse...
-
他のフォームから別のフォーム...
-
VBA public変数はどのようなこ...
-
【HTML、VBScript】HTAアプリケ...
-
Excel VBA: private sub 内の...
-
VB.NETでのイベントの途中終了
-
SavePictureで保存できない
-
【VB6.0】 あるフォームから他...
-
[VB6] SQLの作成について
-
VB6で配列を引数にするときの2...
-
テキストボックスかラベル上の...
-
EXCEL2010 VBA SelectionChange...
-
VB.netである関数を呼んで、そ...
-
リストビューの列ヘッダーの幅...
-
VBAとVB6.0とC#の速度比較
-
subsequentとnextの違いってな...
-
VB.NET)コンボボックスの連動に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
VBAで入力数値について
-
アクセスできない保護レベルエ...
-
【VB.NET】テキストボックスに...
-
ユーザーフォームへのデータ入...
-
visual basic初心者です。 visu...
-
VBAのユーザーフォームで、テキ...
-
visual studio 2008 C# で、値...
-
コンボボックスからテキストボ...
-
VBAのフォーム カーソル移動
-
テキストボックスに大文字を
-
VB2005テキストボックスへのコ...
-
整数かどうかチェックする
-
TextBoxの内容を右寄せ
-
VB2010 TextBoxの数字の表示...
-
テキストボックスを空白にする方法
-
Vba 電卓のテキストボックスに...
-
VBSのプログラム
-
ACCESS 除算での小数点切上げ方法
-
Excel ユーザーフォームで計算 ...
おすすめ情報