
請求書を作る為のユーザーフォーム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も見ています
-
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
VBA リストボックス内の値を複数選択し別シートに転記するには
Visual Basic(VBA)
-
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
-
4
excelのリストボックスで選択した項目をアクティブセルに入力方法
Excel(エクセル)
-
5
エクセル VBA ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示
Visual Basic(VBA)
-
6
VBAのListBoxで複数選択してExcelの1つのセルに反映
Visual Basic(VBA)
-
7
複数選択のListBoxでClickイベントが拾えません
Visual Basic(VBA)
-
8
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
9
Excel にて、 リストボックスのデーターを別ブックのセルに転記するVBAをご教授願います
Excel(エクセル)
-
10
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
11
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
12
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
13
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
14
VBA リストボックス(複数条件)で検索し、転記方法についてご教示ください。
Visual Basic(VBA)
-
15
VBA リストボックス複数選択からセルへの反映についての質問です。 リストボックス1では1つ選択 リ
Visual Basic(VBA)
-
16
VBAのフォームでTextBoxがいっぱいある時
Access(アクセス)
-
17
コンボボックスからテキストボックスに連続して値を出したい
Excel(エクセル)
-
18
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
19
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
20
UserForm1.Showでエラーになります。
工学
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.NETでコンボボックスの1行目...
-
テキストボックスのvalueとtext...
-
C#の質問です
-
シーケンサで最小値を保持する
-
先ほどの質問の続きなのですが...
-
VBA ドロップダウンリストを残...
-
setcookieで「path」に複数の値...
-
アルゴリズムだけでも教えてく...
-
VB.netでRGB関数を使うには
-
VB.NETのスクロールバーコント...
-
VB初心者。小数点以下の表示で...
-
変数に代入してある数値を表示...
-
【ASP.NET】 DataTextFieldの値...
-
Dateserialで データ抽出
-
pingを行うプログラム
-
ExcelでGaussian fittingをした...
-
vb6のVSFlexGridで選択行、列の...
-
UPDOWNコントロールについて
-
VBAのIF分で値を入れる場合
-
型の変換の仕方がわかりません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
Excel VBAのリストボックスの値...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
VB初心者。小数点以下の表示で...
-
Excel VBA 複数選択したリスト...
-
C#の質問です
-
マクロで奇数と偶数の値を2か所...
-
変数名の取得
-
マクロ 特定のセル値のみクリ...
-
シーケンサで最小値を保持する
-
[VB.net] DataGridViewのコンボ...
-
Powershellのparamについて
-
PL/SQLでのTO_DATEの時間取得に...
-
【C++/CLI.NET】コンボボックス...
-
ユーザーフォームのテキストボ...
-
VB.NETのスクロールバーコント...
-
VB.NETでアクティブなformを知...
-
vb6のVSFlexGridで選択行、列の...
おすすめ情報
丁寧な説明をしていただき、大変恐縮です。当方で試してみた結果を添付しました。Userform4にコードをコピペし実行しましたが、うまくいきませんでした。