VBA Macro/VBA Excel 29

[엑셀] XML 파싱하기 #1 - 웹페이지 소스코드 따오기(기본코드)

S Y N O P S I S #VBA로 웹페이지 소스코드 리턴 URL로 설정된 웹페이지 주소의 소스코드를 따오는 매크로. 다시 말하면, 웹페이지에서 소스보기를 했을 때 나타나는 내용 모두를 myText 변수로 반환하는 매크로. VBA Code Sub web_source() Dim Http As Object Dim myText As String, myURL as String myURL = "http://www.naver.com" Set Http = CreateObject("MSXML2.XMLHTTP") 'Set Http = CreateObject("WinHTTP.WinHTTPrequest.5.1") '개인적으로 선호 Http.Open "GET", myURL, False Http.send myText = H..

VBA Macro/VBA Excel 2017.12.02

[엑셀] 빈행을 동일하게 채우기 매크로

## 첫 번째 시트 "A"열의 빈셀 또는 빈셀이 있는 행을 윗머리 행과 같은 내용으로 채우는 매크로## 데이터를 다루다보면 빈 행은 껄끄러운 존재다. 특히 필터를 거는 경우에는 더더욱 그렇다.## 회사 일을 하면서 가장 많이 쓰는 매크로 중 하나이다. VBA Code Option Explicit Sub duplicate_headrow() Dim myItem Dim mySheet As Worksheet Dim i As Long, lastNum As Long Dim myCol As String Set mySheet = Sheets(1) '대상시트 설정(첫 번째 시트) myCol = "A" '빈행을 채울 열 번호(A열) With mySheet.UsedRange lastNum = .Row + .Rows.Coun..

VBA Macro/VBA Excel 2017.11.16

[엑셀] 빈 행, 빈셀 삭제하기 매크로

매크로 설명 첫 번째 시트 "A"열의 빈셀 또는 빈셀이 있는 행 전체를 삭제하는 매크로 이 방법 외에도 SpecialCells 메서드로 빈행을 찾아서 없앨 수 있다. (방법은 많다.) 많은 데이터가 아니거나 손이 많이 가지 않는다면, 자동필터를 이용해서 빈 필드는 제외하고 따로 복사하는 방법을 추천한다. VBA Code 예시 Option Explicit Sub empt_row_del() Dim i As Long Dim lastRow As Long Dim targetCol As String Dim mySheet As Worksheet Set mySheet = Sheets(1) 'mySheet를 첫 번째 시트로 설정, 다른 시트가 필요하다면 변경 With mySheet.UsedRange lastRow = ...

VBA Macro/VBA Excel 2017.11.14

[엑셀] XML 파싱하기 #2 - 필요한 데이터만 잘라내기 (split 함수)

## XML 형식으로 이루어진 텍스트에서 필요한 데이터만 잘라내기 위해 VBA Split 함수를 사용한다.Split 함수는 특정 문자열에서 "구분자"를 통해 나눠지는 각 문자열을 "배열로" 반환한다.Split 함수를 엑셀의 SUM 함수처럼 자유자재로 쓴다면(그정도로 써야한다) 문자열을 처리하는 데 있어서 활용성이 매우 높은 함수이다. ## Split 함수 구문 Split 함수의 구문은 다음과 같다. Split(Expression, [Delimiter], [Limit], [Compare]) Expression은 텍스트로써, 필수요소이다. Delimiter는 구분자로써, 선택요소이다. 생략하면 공백(" ")이 기본값이다. Limit은 반환할 문자열 길이이다. 생략하면 기본값은 -1로 전체 문자열을 반환한다...

VBA Macro/VBA Excel 2017.11.11

[엑셀] 메모장 데이터 불러오기 매크로

메모장의 데이터를 Line by Line으로 변수에 넣는 매크로.이 경우 엑셀파일과 메모장 파일이 같은 폴더 내에 있어야 한다.다른 경우에는 참조할 수 있도록 myPath를 지정해주어야 하고. VBA Code Option Base 1 Option Explicit Dim textLine As String Dim myText() As Variant Dim myPath As String, fileName As String Dim file_number As Long, cnt As Long Sub xml_() myPath = ThisWorkbook.Path & "\" 'myPath 변수에 현재 엑셀파일의 위치 및 역슬래시 입력 fileName = "HRD_API.txt" file_number = FreeFile ..

VBA Macro/VBA Excel 2017.11.07

[엑셀/파워포인트] 지식의 보고, VBA 도움말 및 가이드 (파일)

## VBA2010 Guide VBA에 관한 매뉴얼이다. 게다가 한글화되어 있다. 상수, 날짜 형식, 지시문, 이벤트, 함수, 그룹, 키워드, 메서드, 개체, 연산자, 속성, 문 필요한 VBA 지식의 '운'을 띄울 수 있는 가장 강력한 교재라고 생각한다. ## Excel/PowerPoint 2013 Developer Documentation 엑셀과 파워포인트 2013의 개체모델, 간략한 코드 예제를 제공한다. 별도의 강의서적이 필요없을 정도로 풍부하다. (MS가 설치된 환경이라면 chm 파일을 검색하는 것만으로도 쉽게 구할 수 있다.) 정보제공 차원에서.. VBA Guide.chm 실행 화면

VBA Macro/VBA Excel 2017.10.27

[엑셀] 웹 페이지 크롤링/스크래퍼 매크로

## 웹 페이지 크롤링(실험)회사 업무중에 웹 페이지를 크롤링 해야 할 일이 생겨서 찾아보던 중자바나 다른 언어는 할 줄 모르기 때문에 현재 내가 할 수 있는 가장 쉬운 방식을 찾았다.구글 스프레드시트 importxml 함수를 통힌 파싱도 쉬워(노가다)보이는데 웹페이지에 따라서 제약이 좀 있는 듯하다. ※ "동일한 형식의 데이터를 보여줄 동일한 웹페이지를 URL 형식으로 모두 인덱싱 할 수 있어야 한다."는 점이 중요해 보인다.무슨 소리나면, 요새 웹페이지들이 http://도메인 이후 파라미터를 숨겨놓은 데가 많은데,그래서 페이지 인덱스가 바뀌어도 URL은 그대로라서 URL by URL 방식의 크롤링이 (마치 안되는 것처럼) 보인다.그런데 거꾸로, 페이지 인덱스만 찾아준다면 아래의 VBA 코드를 이용해서..

VBA Macro/VBA Excel 2017.10.21

[엑셀] 키워드 분석 매크로 (작성중)

여러 단어들에 포함된 키워드를 뽑아내는 매크로이다.2개짜리 단어, 3개짜리 단어 등 단어 길이만큼 모조리 검색해서 빈도수별로 키워드 순위를 알려준다.예를 들어, 다음과 같은 대학 학과 리스트에 매크로를 적용하면{수학과, 수학교육학과, 수학교육과} 수학 = 3 교육 = 2 학교 = 2 수학교 = 2 학교육 = 2 수학교육 = 2위와 같은 형식으로 빈도를 뽑아낸다.※ 아직 VBA 코드를 수정하지 않아 가져다 쓰기에는 무리가 있다. (현재는 말도 안되게 무식한 코드이다.)혹시 테스트를 해볼 요량이면, 시트명이 Sheet1인 시트의 B열에 데이터를 나열하고 실행하면 된다. 엑셀 키워드 빈도 분석 VBA 코드 Option Explicit Dim i As Long, j As Long, k As Long Dim cn..

VBA Macro/VBA Excel 2017.10.19