VBA WinAPI / user32 - FindWindow & FindWindowEx 이 글은 Excel VBA 코딩 중, Windows API 함수를 사용하는 과정을 기록하기 위한 것이므로 이 점 참고 바랍니다. 이 포스팅은 Excel VBA에서 Win API를 사용하는 것에 대해 다룹니다. user32 - FindWindow & FindWindowEx 목표로 하는 프로그램의 윈도우 핸들을 찾는 데에 쓰입니다. 프로그램의 창 이름("제목 없음 - Windows 메모장")이나 클래스 이름으로 찾습니다. 클래스 이름은 VBA WinAPI Wondows Detective 등의 프로그램으로 알 수 있습니다. Microsoft technical documentation FindWindow (FindWindowA..

VBA WinAPI / Windows API Viewer for MS Excel 이 글은 Excel VBA 코딩 중, Windows API 함수를 사용하는 과정을 기록하기 위한 것이므로 이 점 참고 바랍니다. 이 포스팅은 Excel VBA에서 Win API를 사용하는 것에 대해 다룹니다. Windows API Viewer for MS Excel 해당 프로그램은 Windows API를 Excel VBA에서 선언할 때 유용하게 사용됩니다. 32Bit와 64Bit를 나누어서 추가 및 수정할 수 있습니다. 공식 홈페이지 https://www.rondebruin.nl/win/dennis/windowsapiviewer.htm 다운로드 주소 bit.ly 사이트 차단으로 다운로드 되지 않는 경우가 있어, 원본 주소를 ..

VBA WinAPI / Windows Detective 이 글은 Excel VBA 코딩 중, Windows API 함수를 사용하는 과정을 기록하기 위한 것이므로 이 점 참고 바랍니다. 이 포스팅은 Excel VBA에서 Win API를 사용하는 것에 대해 다룹니다. Window Detective 해당 프로그램은 Handle to Window(윈도우에서 실행중인 프로그램의 고유 창 번호)를 조회하기 위한 프로그램입니다. 이외에 Spy++ 이라는 프로그램은 프로그래밍 프로그램에 속해있어, 전문 프로그래머가 아니라면 무겁다는 의견을 어디선가 본 것으로 기억합니다. 공식 홈페이지 https://windowdetective.sourceforge.io/ 다운로드 주소 https://sourceforge.net/pro..

VBA Rubberducking (Part 4) 이 글은 Rubberduck Blog의 VBA Rubberducking (Part 4) 글을 번역하며 공부하기 위한 기록으로, 일부 생략된 부분이 있을 수 있습니다. 오역, 오타에 관한 자유로운 의견 감사드립니다. 이 포스팅은 오픈소스 VBE 애드인 Rubberduck의 다양한 기능을 안내하는 시리즈 중 네 번째 게시물입니다. 첫 번째 게시물은 탐색 기능에 관한 것이었습니다. 두 번째 게시물은 코드 검사기의 내용입니다. 세 번째 게시물은 단위 테스트의 내용입니다. 리팩터링 (Refactorings) 우리는 처음에 코드를 검사할 수만 있어도 행복했습니다. 곧 "검사 신속-수정"이 다른 것일 수도 있다는 것을 깨닫습니다. 검사 신속 수정 중 몇개는 본격적인(f..

VBA Rubberducking (Part 3) 이 글은 Rubberduck Blog의 VBA Rubberducking (Part 3) 글을 번역하며 공부하기 위한 기록으로, 일부 생략된 부분이 있을 수 있습니다. 오역, 오타에 관한 자유로운 의견 감사드립니다. 이 포스팅은 오픈소스 VBE 애드인 Rubberduck의 다양한 기능을 안내하는 시리즈 중 세 번째 게시물입니다. 첫 번째 게시물은 탐색 기능에 관한 것이었습니다. 두 번째 게시물은 코드 검사기의 내용입니다. 단위 테스트 (Unit Testing) Rubberduck을 예전부터 아신 분이라면, 프로젝트가 어디에서 왜 시작되었는지 알고 계실 것입니다. Rubberduck은 VBE add-in이 되기 전에는, 이 코드 리뷰 글로 시작되어 VBA로 작..

VBA Rubberducking (Part 2) 이 글은 Rubberduck Blog의 VBA Rubberducking (Part 2) 글을 번역하며 공부하기 위한 기록으로, 일부 생략된 부분이 있을 수 있습니다. 오역, 오타에 관한 자유로운 의견 감사드립니다. 이 포스팅은 오픈소스 VBE 애드인 Rubberduck의 다양한 기능을 안내하는 시리즈 중 두 번째 게시물입니다. 첫 번째 게시물은 탐색에 관한 것이었습니다. 코드 검사기 (Code Inspections) (...) Without Option Explicit on, Rubberduck code inspections can yield false positives. Option Explicit가 없다면, Rubberduck 코드 검사기는 오탐을 발생..

VBA Rubberducking (Part 1) 이 글은 Rubberduck Blog의 VBA Rubberducking (Part 1) 글을 번역하며 공부하기 위한 기록으로, 일부 생략된 부분이 있을 수 있습니다. 오역, 오타에 관한 자유로운 의견 감사드립니다. VBE 편집기는 VB6가 한참 유행이던 1998년에 마지막으로 업데이트되었습니다. VBE는 독립 실행형인 비주얼 스튜디오 6.0 VBE에 비해 전체적인 기능이 약간 부족했습니다. (...) 이 게시물은 Rubberduck 오픈소스 VBE 추가기능의 다양한 특징을 안내할 첫번째 글입니다. 코드 탐색기 module이나, enum과 사용자정의 타입도 드릴 다운할 수 있습니다. 코드에 표시되는 상수 값을 확인할 수 있습니다. module뿐만 아니라, 모..
VBA Rubberduck VBA Class를 공부하던 중, VSCode와 Github로 코드를 백업하기 위한 복사/붙여넣기(Ctrl+C/Ctrl+V)에 지쳐 관련된 것을 찾았습니다. Reddit Q. Does anyone use GitHub for VBA? A. Senipah: (...) I mostly use the tools built into the Rubberduck add-in. (...) Senipah라는 분은 Class 작성에 참고하기 위해 눈여겨보고 있었던 GitHub: VBA-Better-Array를 작성하신 분이었습니다. Rubberduck이란? Rubberduck is an open-source COM add-in project that integrates with the Visua..

VBA / INDEX [Workspace/VBA] - VBA / INDEX 0. InputBox 메서드 1. InputBox 예시 2. InputBox - Type 데이터 타입 0. InputBox 메서드 InputBox prompt [, Tilte] [, Default] [, Left] [, Top] [, Helpfile, HelpContextID] [, Type] prompt InputBox의 내용. Tilte InputBox의 제목. Default 입력 칸에 표시할 기본 값 설정. (default value) Left, Top InputBox를 표시할 위치. Helpfile, HelpContextID InputBox 와 관련이 있는 도움말 파일 지정. Type InputBox 로 전달받을 데이터 타..

VBA / INDEX [Workspace/VBA] - VBA / INDEX 0. MsgBox 함수 1. MsgBox 예시 2. MsgBox - Button 내장 함수 3. Msgbox 반환 값 0. MsgBox 함수 Msgbox prompt [, Buttons] [, Tilte] [, Helpfile, Context] prompt 메세지 박스의 내용 Buttons 메세지 박스의 버튼. 생략하면 '확인'만 표시. Tilte 메시지 박스의 제목. 생략하면 'Microsoft Excel' 표시. Helpfile 메시지 박스와 관련이 있는 도움말 파일 지정. Context 도움말 파일의 context ID 지정. #Index 1. MsgBox 예시 일반적인 예시 MsgBox "내용", vbYesNo + vbCr..

Workbook 개념 Application - Workbooks - Workbook Workbooks("통합 문서 1") Workbooks(1) Workbooks("C:\Book1.xlsx") ActiveWorkbook.Name 등 컬렉션 중 개체가 워크북 (Workbook)이다. Workbooks.Add 생성 Workbooks.Add Workbooks 컬렉션 개체에 Add 메서드가 포함되어 있다. Workbooks - Workbook이다. Workbook.Open 열기 Workbooks.Open Filename:="C:\Book1.xlsx" * 경로를 생략하면, 같은 폴더 내의 파일을 연다. 다른 폴더의 파일 ChDir 문을 사용하면 다른 폴더의 파일도 가능하다. ex) ChDir "C:\ABC" Wo..

VBA / INDEX [Workspace/VBA] - VBA / INDEX 0. 1. 2. 3. 4. 5. 6. 7. 0. #Index 1. #Index 2. #Index 3. #Index 4. #Index 5. #Index 6. #Index 7. #Index ─→ ← ↔ ↑ ↓ ℃ ˚ · △ π σ 개행 문자 상수 등가 설명 vbBack Chr(8) 백스페이스 문자 vbTab Chr(9) Tab 문자 vbCr Chr(13) (\r) 캐리지 리턴 문자 vbLf Chr(10) (\n) 라인 피드 문자 vbCrLf Chr(13) + Chr(10) 캐리지 리턴 – 라인 피드 조합 vbNewLine Chr(13) + Chr(10) 또는 매킨토시에서는 Chr(13) 플랫폼 특정 라인 피드 문자, 즉 현재 플랫폼에..

VBA / INDEX [Workspace/VBA] - VBA / INDEX 0. Worksheet 개념 1. 2. 3. 4. 5. 6. 7. 0. Worksheet 개념 Application - Workbooks - Workbook - Worksheet Worksheets("Sheet1") Worksheets(1) ActiveSheet.Name 등 컬렉션 중 개체가 워크북 (Workbook)이고, 하위 개체가 워크시트 (Worksheet)다. #Index 1. #Index 2. #Index 3. #Index 4. #Index 5. #Index 6. #Index 7. #Index ─→ ← ↔ ↑ ↓ ℃ ˚ · △ π σ 시트 삭제 (Sheet Delete) · @@@@.Delete Method(메서드) -..

선언 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Private Declare PtrSafe Function GetPrivateProfileString Lib "kernel32" _ Alias "GetPrivateProfileStringA" ( _ ByVal lpApplicationName As String, ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, ByVal lpFileName As String _ ) As Long Private Declare PtrSafe Function WritePrivateProfileString Lib "k..