CommonDialog Box컨트롤과 MSFlexGrid컨트롤, File명을
인자로 넘겨주면 해당 MSFlexGrid의 내용을 Excel에서 읽을 수 있는
파일 형태로 저장하는 프로시저 입니다.
Public Sub FileSave(dlgSaveAs As CommonDialog, ByVal TableHFGrid As MSHFlexGrid, ByVal FName As String)
Dim OneRec As String
Dim i As Integer
Dim Cnt As Long
‘ Cancel을 True로 설정합니다.
dlgSaveAs.CancelError = True
On Error GoTo ErrHandler
dlgSaveAs.Flags = cdlOFNOverwritePrompt Or cdlOFNExplorer Or cdlOFNLongNames
dlgSaveAs.Filter = “Comma separated values(CSV)|*.csv|모든 파일 (*.*)|*.*”
dlgSaveAs.DialogTitle = FName & ” 자료 저장”
dlgSaveAs.InitDir = App.Path & “\Data”
dlgSaveAs.FileName = FName
dlgSaveAs.ShowSave
If Len(dlgSaveAs.FileName) = 0 Then Exit Sub
Open dlgSaveAs.FileName For Output As #1 ‘ Open file for output.
‘/ Header(Record Field명)를 출력함 /
OneRec = TableHFGrid.TextMatrix(0, 1)
For i = 2 To TableHFGrid.Cols – 1
OneRec = OneRec & “,” & TableHFGrid.TextMatrix(0, i)
Next i
Print #1, OneRec
‘/ Data를 출력함 /
For Cnt = 1 To TableHFGrid.Rows – 1
DoEvents
OneRec = TableHFGrid.TextMatrix(Cnt, 1)
For i = 2 To TableHFGrid.Cols – 1
OneRec = OneRec & “,” & TableHFGrid.TextMatrix(Cnt, i)
Next i
Print #1, OneRec
Next Cnt
Close #1
Exit Sub
ErrHandler:
If ERR.Number = cdlCancel Then ‘/ 취소버튼(32755)이 눌려진경우
‘ 취소 단추를 눌렀습니다.
Else
MsgBox ERR.Number & “:” & ERR.Description, vbQuestion
End If
Exit Sub
End Sub