|
はじめまして。かぼすです。
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
足りない情報があれば遠慮なく言って下さい。
よろしくお願いします。
|
|