戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
リストボックスからのコピー&ペースト

    [189434] リストボックスからのコピー&ペースト-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ TAKA -(2019/06/04(15:37))
    □U R L/
      東京AAA   あいう   123
      東京BBB   えおか   456
      東京CCC   きくけ   789
      東京DDD   こさし   012
      大阪AAA   すせそ   345
      大阪BBB   たちつ   678
      愛知AAA   てとな   901
      愛知BBB   にぬね   234
       ・
       ・
       ・
       
      上記のようなデータがあり、
      ユーザーフォーム上のテキストボックスにて「東京」と入れコマンドボタン(1)をクリックすると
      リストボックスに「東京」と含まれる行がフィルタリングされ
      
      東京AAA   あいう   123
      東京BBB   えおか   456
      東京CCC   きくけ   789
      東京DDD   こさし   012
      
      と表示し、リストボックス内の「東京BBB」を選び
      コマンドボタン(2)をクリックすれば
      「東京BBB   えおか   456」の値が別シートにコピーペーストされる仕組みを作ろうとしています。
      
      最後の2行のコードをどう組めばよいかわかりません。
      どなたかご教授お願いできますでしょうか。
      ---------------------------
      以下今組みあがっているものです
      ----
      Private Sub CommandButton1_Click()
      
          Dim lastRow As Long
          Dim myData, myData2(), myno
          Dim i As Long, j As Long, cn As Long
      
          ' If TextBox1.Value = "" Then End
      
          With Worksheets("Sheet1")
      
              lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
              myData = .Range(.Cells(1, 1), .Cells(lastRow, 7)).Value
              
          End With
      
          ReDim myData2(1 To lastRow, 1 To 3)
          For i = LBound(myData) To UBound(myData)
              If myData(i, 1) Like "*" & TextBox1.Value & "*" Then
                  cn = cn + 1
                  myData2(cn, 1) = myData(i, 1)
                  myData2(cn, 2) = myData(i, 2)
                  myData2(cn, 3) = myData(i, 3)
              End If
          Next i
      
          With ListBox1
              .ColumnCount = 3
              .ColumnWidths = "200;70;120"
              .List = myData2
          End With
      
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189435] Re[1]: リストボックスからのコピー&ペースト-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2019/06/04(18:29))
    □U R L/
      一例です
      
      With ListBox1
          貼り付け先.Resize(, .ColumnCount).Value = _
              Application.Index(.list, .ListIndex + 1, 0)
      End With


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189436] Re[2]: リストボックスからのコピー&ペースト-

    記事引用/メール受信=OFF■

    □投稿者/ マナ -(2019/06/04(18:36))
    □U R L/
      もう一例
      
      With ListBox1
          For k = 0 To .ColumnCount - 1
              貼り付け先.Offset(, k).Value = .list(.ListIndex, k)
          Next
      End With
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189443] Re[3]: リストボックスからのコピー&ペースト-

    記事引用/メール受信=OFF■

    □投稿者/ ぴんく -(2019/06/05(08:57))
    □U R L/
      > myData = .Range(.Cells(1, 1), .Cells(lastRow, 7)).Value
      リストに使用するデータはA〜C列なのに、なぜ7列までを取得する必要が?
      
      >ReDim myData2(1 To lastRow, 1 To 3)
      これだと抽出から省かれたデータが空白行としてリストに残るのでは?
      
      参考に
      Private Sub CommandButton1_Click()
          Dim lastRow As Long
          Dim myData As Variant, myData2()
          Dim i As Long, cn As Long
      
          If TextBox1.Value = "" Then Exit Sub    'テキストボックスが空白ならExit Sub
          With Worksheets("Sheet1")
              lastRow = .Cells(Rows.Count, 1).End(xlUp).Row
              myData = .Range("A1", .Cells(lastRow, "C")).Value
          End With
          For i = LBound(myData) To UBound(myData)
              If myData(i, 1) Like "*" & TextBox1.Value & "*" Then
                  cn = cn + 1
                  ReDim Preserve myData2(1 To 3, 1 To cn)
                  myData2(1, cn) = myData(i, 1)
                  myData2(2, cn) = myData(i, 2)
                  myData2(3, cn) = myData(i, 3)
              End If
          Next i
          With ListBox1
              .ColumnCount = 3
              .ColumnWidths = "200;70;120"
              .List = Application.Transpose(myData2)
          End With
      End Sub
      Private Sub CommandButton2_Click()
          With Me.ListBox1
              If .ListIndex <> -1 Then '何れかのリストが選択されていたなら
                  Worksheets("Sheet2").Range("D10").Value = .Column(0)    'リスト1列目のデータを転記
                  Worksheets("Sheet2").Range("F10").Value = .Column(1)    'リスト2列目のデータを転記
                  Worksheets("Sheet2").Range("H10").Value = .Column(2)    'リスト3列目のデータを転記
              End If
          End With
      End Sub
      


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [189444] Re[4]: リストボックスからのコピー&ペースト-

    記事引用/メール受信=OFF■

    □投稿者/ TAKA -(2019/06/05(11:57))
    □U R L/

      マナ様、ぴんく様、ありがとうございます。
      本日終日出張の為、お教えいただいたコードを自分のファイルで確認することができません。
      明日、確認いたします。
      取り急ぎお礼申し上げます。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G