| 
    
     |  | Excelで作成した1つのプログラムを用いて、複数のExcelファイル中の該当する行を検索するプログラムです。条件として、 
 1.ファイル中の検索対象の全行数はまちまちで、どれも8行目から開始するとしま
 す。
 2.行検索する、Excelファイルの対象は、Cドライブの中のフォルダ「Excelファイ
 ル全集」中の、ExcelファイルのSheet8&9のみとします。
 3.cells("AF").value =0の行は検索対象とせずに、はじき飛ばすものとします。
 
 
 リストボックスの中に在るファイルをマウスで選択して、釦を押下すると、「ファイルAの行検索をしますか?OK or No」と言うメッセージが出ます。「OK」を押下
 すると、
 1.Cells(i, 11).value = 1&Cells(i, 13).value = A&Cells(i, 14).value =1&Cells(i,18).value = 1を満たせば、プログラム側Sheet4側には何も表示しませ
 ん。
 
 一方、
 
 2.セル中の値;Cells(i, 11).value = 1&Cells(i, 13).value = A&Cells(i, 14).value =1&Cells(i, 18).value = 0を全て満たす行が存在すれば、対象行中のE,F,G列に書かれている内容を、プログラム側のSheet4側のA,B,C列に表示し、D列全
 てに「不具合」と表示し、全て文字は赤色とします。
 
 そして、
 3.上記の2つの定義に当てはまらなければ、プログラム側のSheet4側の、上記で検索
 した「不具合」の下側画面部に、対象行中のE,F,G列に書かれている内容と、D列全
 てに「定義洩れ」のコメントを付け、全て橙色で表示する様にします。
 
 以上の、ファイル中全ての行検索処理が終了したら、自動でSheet4に飛び、結果が表示されます。
 
 そこで、書いてみましたが・・・
 
 Private Sub CommandButton1_Click()
 Call TestOkXOrNo(Workbooks("\C:Excelファイル全集.*.xls\").Worksheets("Sheet8&9"))
 
 End Sub
 
 Sub TestOkXOrNo(ws As Worksheet, lngStartRow As Long, lngLastRow As Long, putCol As Byte)
 If Not ws Is Nothing Then
 Dim union
 Dim i
 For i = lngStartRow To lngLastRow
 union = ws.Cells(i, 11) & ws.Cells(i, 13) & ws.Cells(i, 14) & ws.Cells(i, 18)
 If union = "1A11" Then
 ws.Cells(i, putCol) = "記述せず"
 ElseIf union = "1A10" Then
 ws.Cells(i, putCol) = "不具合"
 Else
 ws.Cells(i, putCol) = "定義洩れ"
 End If
 Next
 End If
 End Sub
 この後が、続きません。
 
 |  |