
エクセル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も見ています
-
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
-
4
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
5
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
6
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
7
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
8
VBAコンボボックスで選択した値をシートに転記したい
Visual Basic(VBA)
-
9
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
10
コンボボックス(最終行取得)
Visual Basic(VBA)
-
11
入力済み、選択したセルに連動した行のデータをユーザーフォームで呼び出すには
Excel(エクセル)
-
12
ExcelVBAのユーザーフォームで一度保存したデータを同じフォームに呼び出して編集する方法
Visual Basic(VBA)
-
13
Excel VBA 複数選択したリストボックスからテキストボックスに転記したいです。
Visual Basic(VBA)
-
14
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
15
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
16
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
17
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
18
VBAのユーザーフォームで、テキストボックスを連携させたいのですが。
Visual Basic(VBA)
-
19
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
20
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【VB.NET】テキストボックスに...
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
VBAのフォーム カーソル移動
-
VBSのプログラム
-
VBAで入力数値について
-
visual studio 2008 C# で、値...
-
【C#】コンボボックスにおけるS...
-
ACCESS 除算での小数点切上げ方法
-
コンボボックスからテキストボ...
-
VBAでcallで呼び出したsubを終...
-
C#で複数のTextboxから検索して...
-
定数を構造体で・・・
-
VBA public変数はどのようなこ...
-
テキストボックスかラベル上の...
-
subsequentとnextの違いってな...
-
[Excel2000]auto_closeを止めさ...
-
【VB6.0】 あるフォームから他...
-
チェックボックスを操作できな...
-
レコードセットにnullの場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAでテキストボッ...
-
アクセスできない保護レベルエ...
-
ユーザーフォームへのデータ入...
-
【VB.NET】テキストボックスに...
-
VBAで入力数値について
-
コンボボックスからテキストボ...
-
VBAのユーザーフォームで、テキ...
-
AccessのVBAで「イベ...
-
visual basic初心者です。 visu...
-
ループを使ってテキストボック...
-
Excel ユーザーフォームで計算 ...
-
VBAで選択箇所がある場合の重複...
-
基本的な質問で本当に申し訳あ...
-
時間の計算
-
Vba テキストボックスの文字列...
-
Web Browserで、、、
-
VisualBasic2008でのツールの扱...
-
16進数
-
エクセル VBA タブストップに...
-
VBでテキストボックスの文字を...
おすすめ情報