
請求書を作る為のユーザーフォーム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で質問しましょう!
似たような質問が見つかりました
- PDF PDFのテキストを追加機能 1 2022/06/18 12:45
- Excel(エクセル) VLOOKUP が機能しない、その原因は何 ? 8 2022/10/19 12:06
- Excel(エクセル) エクセルについて教えてください。 2 2023/06/14 11:11
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- Visual Basic(VBA) Excel VBA でデータ転記について 1 2023/03/07 19:11
- Excel(エクセル) IF 関数で「〇〇 という文字を含む場合」の分岐処理で表示された数字はSUMで数字集計できますか? 3 2022/08/02 16:29
- Access(アクセス) アクセス 意図せずサブプロシージャを移動してしまうのを止めたい 1 2022/09/02 09:19
- Excel(エクセル) Excel 値を返す数式についてです 3 2022/11/21 20:08
- Excel(エクセル) ExcelVBAでリストの項目に必要数と同じ手配数を分配していくマクロを作りたいです。 1 2022/07/29 18:36
- Access(アクセス) Accessにインポートした複数のテーブルを表示させる方法が分かりません。 1 2023/01/30 20:22
この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 ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示
Visual Basic(VBA)
-
7
Excel にて、 リストボックスのデーターを別ブックのセルに転記するVBAをご教授願います
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
VBAのListBoxで複数選択してExcelの1つのセルに反映
Visual Basic(VBA)
-
10
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
11
複数選択のListBoxでClickイベントが拾えません
Visual Basic(VBA)
-
12
テキストボックスの番号を使ったFor~Next文について
Visual Basic(VBA)
-
13
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
14
VBA リストボックス(複数条件)で検索し、転記方法についてご教示ください。
Visual Basic(VBA)
-
15
VBAのフォームでTextBoxがいっぱいある時
Access(アクセス)
-
16
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
17
コンボボックスからテキストボックスに連続して値を出したい
Excel(エクセル)
-
18
エクセルVBA テキストボックスに3桁ごとにコンマ
Visual Basic(VBA)
-
19
エクセルVBA ユーザーフォーム 複数のコンボボックス 同一リスト
Excel(エクセル)
-
20
ExcelVBAを使って、値がある場合は作業を繰り返し実行するプログラムを作成したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel VBAのリストボックスの値...
-
ComboBoxとListBoxとの連動
-
VBA ドロップダウンリストを残...
-
変数に代入してある数値を表示...
-
ListBoxでオートフィルター表示
-
PysimpleGUIでデータベースを作る
-
sin(π)が0にならないです
-
値を返さないコード パス
-
VB.NET 自作プロパティが変更さ...
-
エクセルvbaで、別シートの最下...
-
VBA実行後に元のセルに戻りたい
-
Excel2003 複数セル1列の入力済...
-
ExcelVBAを使って、値...
-
PHP8でWarning:Undefined varia...
-
UNICODE文字が含まれているかの...
-
VBA ユーザーフォーム ボタンク...
-
ドロップダウンリストの初期表...
-
Excel VBA 計算式を代入するには?
-
InputBoxから論理式を得てIF文...
-
エクセルVBAで結合セルの真ん中...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
VBA ドロップダウンリストを残...
-
VB.NETでコンボボックスの1行目...
-
Excel VBAのリストボックスの値...
-
C#の質問です
-
VB初心者。小数点以下の表示で...
-
変数に代入してある数値を表示...
-
値を返さないコード パス
-
マクロで奇数と偶数の値を2か所...
-
DataGridView1のcellで計算
-
vb6のVSFlexGridで選択行、列の...
-
PL/SQLでのTO_DATEの時間取得に...
-
setcookieで「path」に複数の値...
-
変数名の取得
-
ACCESS VBA 画像ファ...
-
vbscriptを使いexcelを参照して...
-
Excel VBA 複数選択したリスト...
-
【C++/CLI.NET】コンボボックス...
-
シーケンサで最小値を保持する
-
マクロ 特定のセル値のみクリ...
おすすめ情報
丁寧な説明をしていただき、大変恐縮です。当方で試してみた結果を添付しました。Userform4にコードをコピペし実行しましたが、うまくいきませんでした。