[[20200522183443]] 『VBA』(こっこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA』(こっこ)

こんばんわ質問です。
VBA については勉強中です

下記の内容で

リストボックスの内容を複数選択しそれをテキストボックスへ
抽出したいのですが改行がうまくできません。
8桁の数字何ですが縦に抽出できるようにしたいです;

Private Sub CommandButton1_Click()

 Dim Sample_Str As String
  Dim i As Integer
  With ListBox1 
    For i = 0 To .ListCount - 1  
      If .Selected(i) Then

        Sample_Str = Sample_Str & .List(i) & vbCrLf
      End If
    Next i  
  TextBox2 = vbCrLf & Sample_Str
  End With
End Sub

< 使用 Excel:Office365、使用 OS:Windows10 >


 TextBoxのMultiLineがFalseになってるのでは?
(OK) 2020/05/22(金) 18:48

おはようございます。
その通りでした><
(こっこ) 2020/05/25(月) 09:19

もう一つ
リストボックスがすべてで6つあります
一つのボタンで選択部分をテキストボックス2に抽出したいのですが
どうしたらよいでしょうかご教授ください。
(こっこ) 2020/05/25(月) 09:44

下記のホームだと長くなってしまし短くしたいのですがお願いいたします。

Private Sub CommandButton1_Click()

Dim Sample_Str As String

  Dim i As Integer
  With ListBox1
    For i = 0 To .ListCount - 1
      If .Selected(i) Then
       Sample_Str = Sample_Str & .List(i) & vbCrLf
      End If
    Next i
  TextBox2 = vbCrLf & Sample_Str

  End With

   With ListBox3
    For i = 0 To .ListCount - 1
      If .Selected(i) Then
       Sample_Str = Sample_Str & .List(i) & vbCrLf
      End If
    Next i
  TextBox2 = vbCrLf & Sample_Str
    End With
End Sub
(こっこ) 2020/05/25(月) 10:16

 どうぞ〜

 Private Sub CommandButton1_Click()
    Dim Sample_Str As String
    Dim i As Long, j As Long

    For i = 1 To 6        
        With Me.Controls("ListBox" & i)
            For j = 0 To .ListCount - 1
                If .Selected(j) Then
                    Sample_Str = Sample_Str & .List(j) & vbCrLf
                End If
            Next j
        End With
    Next i
    TextBox2 = vbCrLf & Sample_Str
 End Sub

(ピンク) 2020/05/25(月) 12:55


 既にレスが付いてますがそのままアップします。

 2020/05/25(月) 10:16のこっこさんのコードでは、
 Sample_Strは、ListBoxごとに改めて取得しな
 おすのではなく、蓄積していってますが、これでいい
 のですか?

 それでしたら、↓で行けると思います。
 ListBoxごとに初期化するのなら、
  'Sample_Str = ""
 のコメントアウトを外してください。

Private Sub CommandButton1_Click()

  Dim Sample_Str As String
  Dim i As Integer
  Dim j As Integer
  Dim lb As Object
   For j = 1 To 6
    'Sample_Str = ""
    Set lb = UserForm1.Controls("ListBox" & j)
      For i = 0 To lb.ListCount - 1
        If lb.Selected(i) Then Sample_Str = Sample_Str & lb.List(i) & vbCrLf
     Next i
     UserForm1.Controls("TextBox" & j).Value = vbCrLf & Sample_Str
     Set lb = Nothing
   Next j
End Sub

(OK) 2020/05/25(月) 13:12


 >一つのボタンで選択部分をテキストボックス2に抽出したい

 でしたね。私のレスはスルー願います。
(OK) 2020/05/25(月) 13:13

ぴんくさん
下記の内容でためしたところ構文エラーになってしまいますた;

Private Sub CommandButton1_Click()

  Dim Sample_Str As String
    Dim i As Long、j As Long  'ここのエラー
    For i = 1 To 6
        With Me.Controls("ListBox" & i)
            j = 0 To .ListCount-1   'ここのえらー
                If .Selected(j) Then
                    Sample_Str = Sample_Str&.List(j) & vbCrLf

            End If
    Next j
       End With
     Next j
    TextBox2 = vbCrLf & Sample_Str

End Sub
(こっこ) 2020/05/25(月) 14:18


すみません解決できました
ありがとうございます
 Dim Sample_Str As String
     Dim i As Long, j As Long
    For i = 1 To 6
        With Me.Controls("ListBox" & i)
       For j = 0 To .ListCount - 1
                If .Selected(j) Then

                  Sample_Str = Sample_Str & .List(i) & vbCrLf
            End If
    Next j
       End With
     Next i
    TextBox2 = vbCrLf & Sample_Str

(こっこ) 2020/05/25(月) 14:31


すみません;
今確認したら
選択した部分の1行目だけがリピートされてしまします;
訂正箇所を教えてください

  Dim Sample_Str As String
     Dim i As Long, j As Long
    For i = 1 To 6
        With Me.Controls("ListBox" & i)
       For j = 0 To .ListCount - 1
                If .Selected(j) Then

                  Sample_Str = Sample_Str & .List(i) & vbCrLf
            End If
    Next j
       End With
     Next i
    TextBox2 = vbCrLf & Sample_Str
(こっこ) 2020/05/25(月) 15:19

 正確にコピー出来るようにならないと

 Sample_Str = Sample_Str & .List(i) & vbCrLf
                                 ↑j

 それと回答してくれた人には、お礼を言いましょうね

(ピンク) 2020/05/25(月) 15:42


ピンクさん
ありがとうございました。><
(こっこ) 2020/05/26(火) 10:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.