|
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
この後が、続きません。
|
|