본문 바로가기

엑셀VBA

[엑셀VBA] Mysql [ODBC 드라이버 관리자] 데이터 원본 이름이 없고 기본 드라이버를 지정하지 않았습니다. 며칠 전에 회사에서 엑셀VBA를 뿌렸습니다. 나만 잘되고 다른 사람들 다 안되면.... 이유가 명확하니 고치기도 쉽고 몇몇은 잘되고 몇몇은 안되도 그나마 괜찮은데... 다 잘되는데 한 명만 안돼.. ㅡ.ㅡ;; 심지어 어제까지 잘 됐대... 환장하겠네.. 어제까지 잘 연결되던 mysql이... 그것도 혼자만 안된답니다. 미치겠네... '-21474567259 (80004005)' 런타임 오류가 발생하였습니다: [Microsoft][ODBC 드라이버 관리자] 데이터 원본 이름이 없고 기본 드라이버를 지정하지 않았습니다. 내껀 잘 된다고. ㅠ.ㅠ 검색을 해보니... 접속 설정을 새로 해보라고 한다... 아니 내껀 잘 된다니깐.. ㅎㅎㅎ 그래서 알아보니 이런 것도 있네... 윈도우 64비트에 ODBC 드라이버가.. 더보기
[엑셀VBA] value, value2, text 차이 엑셀 VBA에서는 셀이 가지는 값을 가장 많이 활용합니다. 그도 그럴 것이, 엑셀 문서는 통상적으로 데이터와 수식으로 이루어져 있기 때문입니다. 1. value 엑셀에서 값을 가지고 올 때, 통상적으로 셀의 위치 정보만 표시합니다. 자료를 입력하여 출력해보겠습니다. Sub valueType() Cells(1, 1) = 100 Debug.Print Cells(1, 1) Debug.Print Cells(1, 1).Value End Sub 직접 실행창에 출력된 내용을 보면, 둘다 100으로 출력된 것을 확인할 수 있습니다. 이처럼 속성(Property)를 지정하지 않으면, value로 전달합니다. 2. value2 value2는 value와 다르게 화폐(Currency)와 날짜(Date) 형태를 사용하지 않습.. 더보기
[엑셀VBA] 폴더 생성(MkDir) 오늘은 간단한 예제를 가지고 왔습니다. "C:\temp"라는 폴더에 "test"라는 폴더를 만들어 보겠습니다. 1. 폴더 만들기 Sub makeFolder() MkDir ("c:\temp\test") End Sub MkDir은 폴더를 만들어주는 명령어입니다. 해당 경로에 이미 폴더가 있다면, 아래와 같은 에러 메시지가 팝업됩니다. 2. 폴더 확인하기 이럴 때에는 Dir을 사용해서, 폴더가 있는지 확인하고 갑니다. Dir 옵션 중에 "vbDirectory"를 사용하면, 폴더가 있으면 해당 폴더명을 없으면 ""을 가집니다. Sub checkFolder() MsgBox Dir("c:\temp\test", vbDirectory) End Sub 3. 조건부 폴더 만들기 이를 활용해서 폴더가 있으면, "이미 해당 .. 더보기
[엑셀VBA] 파일, 폴더 선택(FileDialog) 엑셀 매크로를 만들때, 정해진 파일, 정해진 폴더만 사용한다면, 코드안에 포함해서 작성하시면 됩니다. 그게 아니라, 내가 원하는 폴더와 파일에 작업을 원한다면, 해당 파일이나 폴더을 선택해주어야 합니다. 이 때, 사용할 수 있는 명령어가 FileDialog입니다. FildeDialog는 파일이나 폴더를 선택할 수 있는 대화상자를 표시합니다. FileDialog는 4가지 옵션이 있는데, 그 중 2가지 옵션을 소개하겠습니다. 1. 파일 선택 Sub selectFile() With Application.FileDialog(msoFileDialogFilePicker) .Show Debug.Print .SelectedItems(1) End With End Sub 파일을 선택하기 위한 FileDialog의 옵션은 .. 더보기
[엑셀VBA] 파일 목록(리스트) 만들기(Dir 함수) 안녕하십니까 춤추는초코칩입니다. 업무 중에 필요한 엑셀VBA를 기록하고 있습니다. 오늘은 폴더 내에 파일 목록과 파일 갯수를 가져오는 매크로를 만들어 보겠습니다. Temp 폴더안에 4개 엑셀 자료가 있습니다. 해당 경로의 파일 목록과 파일 갯수를 가져오는 매크로입니다. Sub FileList() Dim dirPath As String Dim fileName As String Dim i As Integer dirPath = "C:\Temp\" '폴더 경로 fileName = Dir(dirPath & "*.*") '첫번째 파일명 가져오기 Do While fileName "" i = i + 1 Range("A" & CStr(i + 1)).Value = fileName fileName = Dir() '다음 파일.. 더보기
[엑셀VBA] Open, Close 파일 열기, 닫기 안녕하십니까 춤추는초코칩입니다. 업무 중에 필요한 엑셀VBA를 기록하고 있습니다. 오늘은 엑셀을 파일을 열고 닫는 매크로를 만들어 보겠습니다. 이 기능을 활용하면, 엑셀에서 다른 엑셀 파일을 편집할 수 있습니다. 우선 파일 열기 매크로입니다. '예제1-1. 파일열기 Sub openExcel() Application.Workbooks.Open Filename:="C:\Users\cysti\Desktop\openExcel\sampleA.xlsx" End Sub 같은 폴더 내에서 파일이 있다면, 아래와 같이 작성하셔도 됩니다. '예제1-2. 같은 폴더 안에서 파일열기 Sub openExcel() Application.Workbooks.Open Filename:= ThisWorkbook.Path & "\samp.. 더보기
[엑셀VBA] Save, SaveAs 저장하기 안녕하십니까 춤추는초코칩입니다. 업무 중에 필요한 엑셀VBA를 기록하고 있습니다. 오늘은 엑셀을 저장하는 매크로를 만들어 보겠습니다. 이 기능을 활용하면, 특정 제목으로 저장하거나 특정 위치에 저장할 수 있습니다. 우선 가장 기본적인 저장부터 시작하겠습니다. 저장하기 매크로는 아래와 같습니다. '예제1. 저장하기 Sub saveExcel() ActiveWorkbook.Save End Sub 다만, 코드가 포함되어 있어서, 명령문을 실행하면 아래와 같은 메시지 창이 팝업 됩니다. 가볍게 무시해주셔서도 상관없을 거 같습니다. 해당 명령문을 실행하면 기본으로 설정되어 있는 폴더에 "통합문서.xlsx"가 저장됩니다. 두번째는 "예제2. 원하는 파일명으로 저장하기"라는 제목으로 파일을 저장해 보겠습니다. 이때에는.. 더보기
[엑셀VBA] Join, 문자열 합치기 안녕하십니까 춤추는초코칩입니다. 업무 중에 필요한 엑셀VBA를 기록하고 있습니다. 지난 시간에 "Split, 문자열 나누기"를 했습니다. 오늘은 "문자열 합치기" 혹은 "텍스트 합치기" 기능입니다. 엑셀 VBA의 Join 함수는 배열의 항목을 결합하여 하나의 문자로 반환합니다. 함수의 구문 Join ( SourceArray, [Delimiter] ) 함수의 인수 SourceArray 필수 결합하려는 문자열 Delimiter 선택 각 문자열을 구분하는데 사용되는 구분 기호로, 생략하면 공백(" ")으로 설정 '예제1. 문자열 합치기, 구분자 기본설정(" ") Sub TextJoin() ' Join together the strings "John", "Paul" and "Smith". Dim fullName.. 더보기