| 
    
     |  | はじめまして。かぼすです。 
 Accessでメインフォームで抽出条件を設定し、
 その結果をサブフォームに表示しています。
 
 そのサブフォームの結果をExcelに出力するVBAを書いたのですが、
 時々出力結果がおかしくなってしまいます。
 
 VBAはこんな感じです。
 
 Public xls As Excel.Application
 Public wb As WorkBook
 Public wks As WorkSheets
 Public cntGyo
 
 '--------------------------------------------------------------
 Sub 結果出力()
 
 Dim Rcs As DAO.Recordset
 Dim r
 
 'サブフォーム1のデータを出力
 Set wks = wb.WorkSheets("Sheet1")
 Set Rcs = Forms!F_MainForm![F_SubForm1].Form.RecordsetClone
 
 cntGyo = Rcs.RecordCount
 
 r = 2
 If cntGyo<>0 Then
 Rcs.MoveFirst
 Do Until Rcs.EOF
 .Cells(r,2) = Rcs(1)
 .Cells(r,3) = Rcs(2)
 Rcs.MoveNext
 r = r+1
 Loop
 EndIf
 
 '罫線
 Keisen  '別のSubをCall(Sheet2も同様に使う)
 
 End With
 
 Rcs.Close
 Set Rcs = Nothing
 Set wks = Nothing
 
 'サブフォーム2のデータを出力
 Set wks = wb.WorkSheets("Sheet2")
 Set Rcs = Forms!F_MainForm![F_SubForm2].Form.RecordsetClone
 
 cntGyo = Rcs.RecordCount
 
 r = 2
 If cntGyo<>0 Then
 Rcs.MoveFirst
 Do Until Rcs.EOF
 .Cells(r,2) = Rcs(1)
 .Cells(r,3) = Rcs(2)
 .Cells(r,4) = Rcs(3)
 Rcs.MoveNext
 r = r+1
 Loop
 EndIf
 
 '罫線
 Keisen  '別のSubをCall(Sheet1も同様に使う)
 
 End With
 
 Rcs.Close
 Set Rcs = Nothing
 Set wks = Nothing
 End Sub
 
 '--------------------------------------------------------------
 Sub Keisen()
 
 With Wks
 With .Range(.Cells(1,1),.Cells(cntGyo+1,3)).Borders
 .LineStyle = xlsContinuous
 .Weight = xlThin
 End With
 
 .Cells(cntGyo+4, 1) = "コメント"
 .Cells(cntGyo+5, 1) = "〇:変更する"
 .Cells(cntGyo+6, 1) = "×:変更なし"
 End With
 
 End Sub
 
 具体的な現象は、Sub Keisenで罫線が描かれる行、コメントが書かれる行が
 Sub 結果出力で出力されたデータ行と異なってしまいます。
 (データ行より罫線行が少ない、コメントがデータ行にかぶってしまう)
 
 この現象がうまくいく時、いかない時があり
 何が原因なのかわからず困っています。
 
 どなたか教えてください。
 
 環境:WindowsXP、Accss2002
 足りない情報があれば遠慮なく言って下さい。
 
 よろしくお願いします。
 
 |  |