請求書を作る為のユーザーフォーム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も見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
VBA。リストボックスの値を別のユーザーフォームのテキストボックスに反映したい。
Access(アクセス)
-
エクセルVBA「リストボックスで選択した値をテキストボックスで変更してシート上セルに反映したい」
Excel(エクセル)
-
Excel VBAのリストボックスの値を他のフォームに反映させる方法を教えてください。
Visual Basic(VBA)
-
-
4
VBA リストボックス内の値を複数選択し別シートに転記するには
Visual Basic(VBA)
-
5
エクセルVBAでテキストボックスに入力があった場合のみ、ワークシートに転記したい
Visual Basic(VBA)
-
6
ListBoxで改行したい
Visual Basic(VBA)
-
7
EXCEL2013 VBA ListBox 未選択
Excel(エクセル)
-
8
ユーザーフォーム内のテキストボックスからオートフィルター抽出を行う方法
Visual Basic(VBA)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
VBA フォームのテキストボックスにセルの値を表示させたいが改行していたら改行もあわせて表示させたい
Excel(エクセル)
-
11
エクセルVBAリストボックスに表示された検索結果をクリックして、該当するセルをアクティブセルにしたい
Excel(エクセル)
-
12
ユーザーフォームに別シートからデータを反映させたい。
Visual Basic(VBA)
-
13
ExcelVBAでテキストボックスの表示形式を小数点第二位まで表示する方法
Visual Basic(VBA)
-
14
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
15
エクセル VBA ユーザーフォーム リストボックスで選択した値をテキストボックスに自動表示
Visual Basic(VBA)
-
16
VBA コンボボックスとテキストボックスを連結させたい
Visual Basic(VBA)
-
17
Excel にて、 リストボックスのデーターを別ブックのセルに転記するVBAをご教授願います
Excel(エクセル)
-
18
VBA リストボックス複数選択からセルへの反映についての質問です。 リストボックス1では1つ選択 リ
Visual Basic(VBA)
-
19
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
20
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
マクロで奇数と偶数の値を2か所...
-
VB.NETでコンボボックスの1行目...
-
VBで電卓のメモリー機能はどの...
-
ポインタのプログラムについて
-
最大・最小を求めるプログラム
-
ハッシュテーブル(連想配列)が...
-
VB初心者。小数点以下の表示で...
-
C#の質問です
-
PL/SQLでのTO_DATEの時間取得に...
-
Dateserialで データ抽出
-
textboxとLabelを動的に変更する
-
【ASP.NET】 DataTextFieldの値...
-
アセンブリ言語について教えて...
-
VBAのIF分で値を入れる場合
-
マクロ 特定のセル値のみクリ...
-
VBA(自然数)
-
setcookieで「path」に複数の値...
-
VB2008 iniファイルの指定セク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
ハッシュテーブル(連想配列)が...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Powershellのparamについて
-
power BI クエリエディター 〇...
-
PysimpleGUIでデータベースを作る
-
DataTableに対するLINQについて
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
Excel VBA 複数選択したリスト...
-
ダブルクリックをした順番に数...
-
PL/SQLでのTO_DATEの時間取得に...
-
[VB.net] DataGridViewのコンボ...
-
マクロで奇数と偶数の値を2か所...
-
ASPの変数の値をJAVA Script内...
-
vb6のVSFlexGridで選択行、列の...
-
シーケンサで最小値を保持する
おすすめ情報
丁寧な説明をしていただき、大変恐縮です。当方で試してみた結果を添付しました。Userform4にコードをコピペし実行しましたが、うまくいきませんでした。