Top > よくつかうプログラム> 複数の行の選択

VBA通信教材申込み

VBA課題解決型実践塾セミナー内容

申込 ヤフーショッピング

複数の行の選択

(13)複数の行の選択

複数の行の選択

データを部分検索するとき同じデータがあった場合どの行を選択するかはリストボックス のあるフォームを使えば便利です。 まゆみという文字を検索するには文字列の位置を返すInStr関数を使います。 InStr(Worksheets("名簿").Cells(i, 2), RTrim(Worksheets("入力シート").Cells(2, 2))) 戻り値が0でなければデータがあると判断します。 該当データが1件の場合はフォームを出す必要がありませんので件数を判断します。

元データ

複数の行の選択

検索ボタンのプログラム

Sub 検索()
  Dim i As Long
  Dim lastrow As Long
  Dim kensu As Long
  Dim コード番号 As Long
  Dim 名前 As String
  Dim 住所 As String
  Dim コメント As String
  lastrow = Worksheets("名簿").Cells(Rows.Count, 1).End(xlUp).Row
  kensu = 0
'件数をみる
  For i = 2 To lastrow
    If InStr(Worksheets("名簿").Cells(i, 2), RTrim(Worksheets("入力シート").Cells(2, 2))) <> 0 Then
      コード番号 = Worksheets("名簿").Cells(i, 1)
      名前 = Worksheets("名簿").Cells(i, 2)
      住所 = Worksheets("名簿").Cells(i, 3)
      コメント = Worksheets("名簿").Cells(i, 4)
      kensu = kensu + 1
    End If
  Next
  If kensu = 0 Then
    MsgBox "該当データはありません"
  Else
    If kensu = 1 Then
      Worksheets("入力シート").Cells(2, 2) = 名前
      Worksheets("入力シート").Cells(3, 2) = コード番号
      Worksheets("入力シート").Cells(4, 2) = 住所
      Worksheets("入力シート").Cells(5, 2) = コメント
    Else
      frmKensaku.Show
    End If
  End If
End Sub

検索フォームのプログラム

Private Sub cmdCancel_Click()
  Unload Me
End Sub
Private Sub cmdJikkou_Click()
  Dim i As Long
  Dim lastrow As Long
  lastrow = Worksheets("名簿").Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To lastrow
    If Worksheets("名簿").Cells(i, 1) = lstData.Text Then
      Worksheets("入力シート").Cells(2, 2) = Worksheets("名簿").Cells(i, 2)
      Worksheets("入力シート").Cells(3, 2) = Worksheets("名簿").Cells(i, 1)
      Worksheets("入力シート").Cells(4, 2) = Worksheets("名簿").Cells(i, 3)
      Worksheets("入力シート").Cells(5, 2) = Worksheets("名簿").Cells(i, 4)
    End If
  Next
  Unload Me
End Sub
Private Sub lstdata_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
  Dim i As Long
  Dim lastrow As Long
  lastrow = Worksheets("名簿").Cells(Rows.Count, 1).End(xlUp).Row
  For i = 2 To lastrow
    If Worksheets("名簿").Cells(i, 1) = lstData.Text Then
      Worksheets("入力シート").Cells(2, 2) = Worksheets("名簿").Cells(i, 2)
      Worksheets("入力シート").Cells(3, 2) = Worksheets("名簿").Cells(i, 1)
      Worksheets("入力シート").Cells(4, 2) = Worksheets("名簿").Cells(i, 3)
      Worksheets("入力シート").Cells(5, 2) = Worksheets("名簿").Cells(i, 4)
    End If
  Next
  Unload Me
End Sub
Private Sub UserForm_Initialize()
  Dim i As Long
  Dim j As Long
  Dim lastrow As Long
  lastrow = Worksheets("名簿").Cells(Rows.Count, 1).End(xlUp).Row
  lstData.ColumnCount = 2
  lstData.ColumnWidths = "2cm;4cm"
  j = 0
  For i = 2 To lastrow
    If InStr(Worksheets("名簿").Cells(i, 2), RTrim(Worksheets("入力シート").Cells(2, 2))) <> 0 Then
      With lstData
        .AddItem
        .List(j, 0) = Worksheets("名簿").Cells(i, 1)
        .List(j, 1) = Worksheets("名簿").Cells(i, 2)
        j = j + 1
      End With
    End If
  Next
End Sub

 
塾長あいさつ
基本方針(考え方)
通信教育内容
課題解決セミナー内容
初心者基礎コース内容
カリキュラム・料金
案内地図・各種リンク
問合せ・申込み
アベノ塾
システムの内製化
アサイコンピュータACS
応用部品集(有料)
販売管理(事例)
財務管理(事例)
顧客管理(事例)
見積もり(事例)
給与(事例)
介護(事例)
ゴースト暗算(事例)
部品集(部品の基礎)
部品集(シート関連)
部品集(データベース)
部品集(セル関連)
部品集(関数)
部品集(フォーム関連)
部品集(ブック関連)
部品集(その他)
変数の勉強
繰り返しと条件文
マスター登録.訂正.削除
フォルダー内のファイル
項目をシート名で作成
ブックの操作
CSVファイルの取り込み
呼び出し元・先
商品マスター検索
エクセル関数をVBAで
エクセル関数を使う
よくつかうプログラム
販売管理(ソース)
財務管理(ソース)
給与管理(概要・画面)
見積もり(概要・画面)
工程管理(概要・画面)
原価管理(概要・画面)