Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1213 / 76734 ←次へ | 前へ→

【81175】Re:ユーザーフォームのリストボックスに別ブックのシ全てのートから検索、表示
回答  γ  - 20/2/18(火) 11:10 -

引用なし
パスワード
   Columnプロパティを使うとよいと思います。
参考にしてください。

Private Sub CommandButton1_Click()
  Dim wb As Workbook
  Dim ws As Worksheet
  Dim flg As Boolean
  Dim myData, myData2()
  Dim i As Long, j As Long, cn As Long
  Dim LastRow As Long

  '対象Bookの指定
  For Each wb In Workbooks
    If wb.Name = "DATA.xlms" Then
      flg = True
      Exit For
    End If
  Next

  If flg = False Then
    Set wb = Workbooks.Open(ThisWorkbook.Path & "\DATA.xlsm")
  End If

  '配列の作成
  For Each ws In wb.Worksheets
    With ws
      LastRow = .Cells(Rows.count, 1).End(xlUp).Row
      myData = .Range(.Cells(1, 1), .Cells(LastRow, 7)).Value
    End With

    For i = LBound(myData) To UBound(myData)
      If myData(i, 4) Like "*" & TextBox1.Value & "*" Then
        cn = cn + 1
        ReDim Preserve myData2(1 To 4, 1 To cn)
        myData2(1, cn) = myData(i, 1)
        myData2(2, cn) = myData(i, 3)
        myData2(3, cn) = myData(i, 4)
        myData2(4, cn) = myData(i, 6)
      End If
    Next i
  Next

  '
  With ListBox1
    .ColumnCount = 4
    .ColumnWidths = "50;200;200;50"
    .Column() = myData2
  End With

  wb.Close SaveChanges:=False
End Sub

なお、投稿にあたっては、手打ちせずに、
VBE(エディタ−)にあるコードをそのままコピーペイストしてください。
手打ちミスの修正までするのは無駄です。議論が噛み合わないこともあります。

また、冒頭に Option Explicit として、
未宣言の変数が無いようにしてください。
オプション設定を変更することで、自動的に、
Option Explicit を書き込む設定にしておくことを推奨します。

7 hits

【81174】ユーザーフォームのリストボックスに別ブックのシ全てのートから検索、表示 初心者です。 20/2/17(月) 21:58 質問[未読]
【81175】Re:ユーザーフォームのリストボックスに別... γ 20/2/18(火) 11:10 回答[未読]
【81176】Re:ユーザーフォームのリストボックスに別... 投稿者 20/2/18(火) 12:49 お礼[未読]
【81177】Re:ユーザーフォームのリストボックスに別... γ 20/2/18(火) 16:26 発言[未読]
【81178】Re:ユーザーフォームのリストボックスに別... 投稿者 20/2/18(火) 19:08 お礼[未読]

1213 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free