VB에서 엑셀 데이터 읽고 쓰기.
# Windows API 함수를 이용하여, 비쥬얼 베이직에서 사용합니다.
★추가한 모듈에 아래의 소스코드를 입력합니다.
Option Explicit
'외부 프로그램 실행
Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, _
ByVal lpFile As String, ByVal lpParameters As String, _
ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Public exFileName As String '저장하려는 Excel File Name
Public ExcelCon As ADODB.Connection
Public Sub ExcelFileSave(grd As MSHFlexGrid)
Dim iRow As Integer, iCol As Integer
Dim Text As String
Dim objExcel As Object '생성될 엑셀 개체
Dim sMSG As String
Dim gsMSG As String
On Error GoTo Err_Handler
'개체 생성
Set objExcel = CreateObject("Excel.Sheet")
With objExcel.Application
'열제목 나타내고 굵게 지정
For iCol = 1 To grd.Cols - 1
.ActiveSheet.Cells(1, iCol).Value = grd.TextMatrix(0, iCol)
Next
iCol = 0: iRow = 0
.ActiveSheet.Range("A1").CurrentRegion.Font.Bold = True
'레코드 Excel로 변환
For iRow = 1 To grd.Rows - 1
For iCol = 1 To grd.Cols - 1
.ActiveSheet.Cells(iRow + 1, iCol).Value = grd.TextMatrix(iRow, iCol)
Next iCol
Next iRow
'지정한 경로로 저장
.Workbooks(1).SaveAs exFileName
'Excel File를 Open할 것인지 물어봐서 아니면 Exit...
gsMSG = "저장하였습니다" & Chr(13) & Chr(13) & exFileName
gsMSG = gsMSG & "를 Excel로 불러오시겠습니까?"
If MsgBox(gsMSG, vbInformation + vbYesNo) = vbNo Then Exit Sub
'Excel File 호출
Call OpenExcelFile(exFileName)
End With
Exit Sub
Err_Handler:
Call MsgBox(Err.Description, vbCritical)
Err.Clear
Exit Sub
End Sub
'파일명 가져오기
'저장공통대화상자에서 [취소]/[ESC] 버튼을 눌렀으면 출력안함
Function GetFileName(dlgcommon As CommonDialog) As Boolean
On Error GoTo Err_Handler
'CancelError를 True로 설정합니다.
dlgcommon.CancelError = True
'플래그를 설정합니다.(읽기전용)
dlgcommon.Flags = cdlOFNHideReadOnly
'필터를 설정합니다.
dlgcommon.Filter = "Excel Files (*.xls)|*.xls"
'기본 필터를 지정합니다.
dlgcommon.FilterIndex = 2
'[다른 이름으로 저장] 대화 상자를 표시합니다.
dlgcommon.ShowSave
'선택된 파일 이름을 표시합니다.
exFileName = dlgcommon.FileName
GetFileName = True
Exit Function
Err_Handler:
'[취소] 단추를 눌렀습니다.
Err.Clear
Exit Function
End Function
'Excel File 열기
Public Sub OpenExcelFile(FilePathName As String, Optional Parameter As String)
Dim Result As Long
Dim Param As String
On Error GoTo Err_Handler
Const SW_SHOWNORMAL = 1
If Parameter = "" Then
Param = vbNull
Else
Param = Parameter
End If
Result = ShellExecute(App.hInstance, "open", FilePathName, Param, _
vbNullString, SW_SHOWNORMAL)
Exit Sub
Err_Handler:
Call MsgBox(Err.Description, vbCritical)
Err.Clear
Exit Sub
End Sub
Public Function ExcelOpen(FilePathName As String)
On Error GoTo e1:
Set ExcelCon = New ADODB.Connection
With ExcelCon
.Provider = "Microsoft.Jet.OLEDB.4.0"
.Properties("Extended Properties").Value = "Excel 8.0"
.Open FilePathName
End With
Exit Function
e1:
MsgBox Err.Description
End Function
Public Function ExcelClose()
ExcelCon.Close
End Function
학원 수강생 및 강좌 관리
A 학원에서는 강사들의 정보를 상세히 입력받아 매달 급여를 지급하고
급여는 매달 지급되는 금액은 일정하고 수당과는 관계가 없다. 강사는
강좌를 개설하과 각 강좌의 과목은 과목당 수강료가 책정이 되어 있다.
각 강좌는 과목당 학수 구분을 한다. (학수구분은 이과인지, 문과인지,
예체능인지의 구분)을 의 미한다. 수강하는 학생들에 대하여 학생들이
어떤과목을 수강했는지에 대한 자료가 필요하고 관리가 필요하다.
#API 함수
소프트웨어 어플리케이션을 개발하기 위한 여러가지 함수의 집합
API 함수 중 특정 파일을 실행하는 함수인 ShellExecute 함수 관련 모음
#ShellExecute
전달받는 인수값을 근거로 특정 프로그램을 실행시켜주는 API 함수
# hwnd : 부모 윈도우 핸들
# Ipoperation : 실행 옵션
# IpParameters : 프로그램 실행 시 전달할 파라미터 또는 null
# IpDirectory : 실행시킬 파일이 위치한 경로명
# nShowCdm : 실행되는 프로그램이 어떻게 보여질 지 결정
# Const SW_SHOWDEFAULT = 10
# Const SW_SHOWMAXMIZED= 3
# Const SW_SHOWMINIMIZED= 2
# Const SW_SHOWNORMAL= 1
----소스파일----
Private Sub Command1_Click() '네이버로 가기 버튼 클릭
Dim L_rtnVal As String
L_rtnVal = ShellExecute(0, "OPEN", "Http://www.naver.com", "", "", 1)End Sub
# 추가 하고 프로그램을 실행해서 테스트를 해 보세요.
# 텍스트 열기 버튼의 소스
Private Sub Command2_Click()
Dim lrtnVal As String
If Not GetFileName(CommonDialog1) Then Exit Sub
lrtnVal = ShellExecute(0, "OPEN", exFileName, "", "", 1)
End Sub
# 배포까지 하면, 뭐 다됐네 이제...
유지 보수+_+? ㅋㅋㅋㅋㅋㅋㅋ ㅜ_ㅜ
'Languages > Visual Basic' 카테고리의 다른 글
VB - 고급 데이터 베이스 작성하기 [5] (0) | 2012.08.20 |
---|---|
VB - Common Dialog Control (0) | 2012.08.20 |
VB - VB 프로그래밍 시 속도향상을 위한 45가지 팁 (0) | 2012.08.16 |
VB , MS SQL 2005 연동하기 (0) | 2012.08.16 |
VB.NET - KeyEvent, Listbox, Combobox 예제 (0) | 2012.08.15 |