
請求書を作る為のユーザーフォーム1を作っています。請求項目を入れるテキストボックスは20個あります。複数選択したリストボックスの値をテキストボックス1から6まで(20まで作るつもりです。)を上から順に転記したいです。毎回同じリストボックスの値を選ぶわけではありませんし、毎回6個のテキストボックスを使うわけでもありません。リストボックスの値を複数選ぶことはできたのですが、それ以降どのようにしたらいいのかわかりません。教えて頂きたいです。よろしくお願いします。
順序は、1、リストボックスから複数選ぶ。2、CommandButton1を押す。3、テキストボックスに値が上から順に転記される。

No.3ベストアンサー
- 回答日時:
こんばんは
1列目、2列目を繋いで出力する例・・・です
必要に応じて直してください
Private Sub CommandButton1_Click()
Const lmit As Integer = 20
Dim i As Integer, cnt As Integer
Dim n As Integer
ReDim ary(lmit, 1)
With Me.ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
cnt = cnt + 1
If lmit < cnt Then MsgBox "選択数がTextBoxの数を超過しています": Exit Sub
ary(n, 0) = .List(i, 0)
ary(n, 1) = .List(i, 1)
n = n + 1
End If
Next i
End With
'出力
n = 0
While ary(n, 1) <> ""
Me.Controls("TextBox" & n + 1).Text = ary(n, 0) & " : " & ary(n, 1)
n = n + 1
Wend
End Sub
Qchan1962様、リストボックスのNO.は表示させたくないので消してしましましたが、当方のお願いを見事形にして下さり感動しております。ありがとうございました。
No.1
- 回答日時:
Visual Basic for Applications (VBA) を使用して、リストボックスから選択された値をテキストボックスに転記することができます。
以下は、CommandButton1をクリックしたときに、リストボックスで選択された項目を上から順に6つのテキストボックスに転記するサンプルコードです。Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim count As Integer
count = 1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
For j = 1 To 6
If count > 20 Then
Exit For
End If
Controls("TextBox" & j).Text = ListBox1.List(i)
count = count + 1
Next j
End If
Next i
End Sub
請求書のテキストボックス化
櫻谷圭司
請求書を作る為のユーザーフォーム1を作っています。請求項目を入れるテキストボックスは20個あります。複数選択したリストボックスの値をテキストボックス1から6まで(20まで作るつもりです。)を上から順に転記したいです。毎回同じリストボックスの値を選ぶわけではありませんし、毎回6個のテキストボックスを使うわけでもありません。リストボックスの値を複数選ぶことはできたのですが、それ以降どのようにしたらいいのかわかりません。教えて頂きたいです。よろしくお願いします。
順序は、1、リストボックスから複数選ぶ。2、CommandButton1を押す。3、テキストボックスに値が上から順に転記される。
Visual Basic for Applications (VBA) を使用して、リストボックスから選択された値をテキストボックスに転記することができます。以下は、CommandButton1をクリックしたときに、リストボックスで選択された項目を上から順に6つのテキストボックスに転記するサンプルコードです。
VB
Copy code
Private Sub CommandButton1_Click()
Dim i As Integer
Dim j As Integer
Dim count As Integer
count = 1
For i = 0 To ListBox1.ListCount - 1
If ListBox1.Selected(i) Then
For j = 1 To 6
If count > 20 Then
Exit For
End If
Controls("TextBox" & j).Text = ListBox1.List(i)
count = count + 1
Next j
End If
Next i
End Sub
このコードでは、ListBox1のリスト項目が上から順に処理されます。ListBox1で選択された項目のみを処理するために、If ListBox1.Selected(i)という条件分岐が使用されています。リスト項目の値は、ListBox1.List(i)で取得されます。TextBoxの名前は、TextBox1からTextBox20までであるため、コントロール名を動的に作成するために、Controls("TextBox" & j)のように文字列を結合して使用しています。
このコードをユーザーフォーム1のコードモジュールに貼り付けて、CommandButton1のClickイベントに関連付けることができます。このコードを使用すると、リストボックスから複数の項目を選択し、CommandButton1をクリックすることで、選択された項目が上から順に最大6つのテキストボックスに転記されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBA 重複チェック後に値をワークシートに転記する方法を教えてください。
Visual Basic(VBA)
-
Excel VBA マクロ ある列の最終行迄を参照し、別の列の空白セルに値を入力したいです
Visual Basic(VBA)
-
2つ目のコンボボックスが動作しません。
Visual Basic(VBA)
-
-
4
エクセル VBA 処理スピードを上げたいのですが。
Visual Basic(VBA)
-
5
Excel VBA ユーザーフォーム1のコンボボックスに別ブックの値を反映させたいです。
Visual Basic(VBA)
-
6
VBA ユーザーフォームからSubプロージャ―に値を引き渡す方法
Visual Basic(VBA)
-
7
エクセル マクロ(A1:A10)までの中で一番多く出た数字をB10に表示
Visual Basic(VBA)
-
8
VBAで、シート間の転記するコードをFOR~NEXTで教えてください。
Visual Basic(VBA)
-
9
なぜこんな初歩的なVBAのIf文でエラーか発生して使えないのか、全く理解出来ません。誰か助けてくださ
Visual Basic(VBA)
-
10
VBAコードを張り付け後のエクセルの進め方
Visual Basic(VBA)
-
11
Excel VBA でデータ転記について
Visual Basic(VBA)
-
12
VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。
Visual Basic(VBA)
-
13
VBA オリジナル関数で選択セルの合計を作成したい
Excel(エクセル)
-
14
【Excel VBA】条件に合った行の表示・非表示を行う方法
Visual Basic(VBA)
-
15
ユーザーフォームの表示を追加したい
Visual Basic(VBA)
-
16
Excelでなぜこのような式をつかっているのでしょうか、行に1,2,3と連番を振るだけなのに
Excel(エクセル)
-
17
vba
Visual Basic(VBA)
-
18
A列に重複した番号の行を条件を指定して削除
Visual Basic(VBA)
-
19
Excel vbaについての質問
Visual Basic(VBA)
-
20
ExcelのVBAコードについて教えてください。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
変数に代入してある数値を表示...
-
5
textboxとLabelを動的に変更する
-
6
Excel VBA 複数選択したリスト...
-
7
不定値の出力について
-
8
0から86400秒までの下2桁を取り...
-
9
変数が勝手に変わります
-
10
VB.NETでコンボボックスの1行目...
-
11
CascadingDropDownの値取得方法
-
12
ユーザーフォームの入力をシー...
-
13
変数名の取得
-
14
IP Address Controlから値を取...
-
15
DateLastModifiedのフォーマット
-
16
ActiveReport1.5 を使ってコン...
-
17
vb6のVSFlexGridで選択行、列の...
-
18
他のformのコントロールの値の...
-
19
VBA コピーして次の値まで貼り...
-
20
値を返さないコード パス
おすすめ情報
公式facebook
公式twitter
丁寧な説明をしていただき、大変恐縮です。当方で試してみた結果を添付しました。Userform4にコードをコピペし実行しましたが、うまくいきませんでした。