-
[비공개] API / VBA 쉼표로 구분된 텍스트 파일 읽기
텍스트 문장으로 만들어진 데이터를 엑셀로 불러 들여 데이터로 사용해야 할때 쉼표로 구분되어 있는 경우가 있습니다.결론 부터 보자면 좌측의 쉼표 텍스트 문장을 우측의 엑셀 데이터로 변환하는 과정입니다. Sub testfile() Dim f As String f = ThisWorkbook.Path & "D:\Users\PC\Desktop\증권분석.txt" Workbooks.OpenText Filename:=f, DataType:=xlDelimited, comma:=True End Sub Workbooks.OpenText Filename:=f, DataType:=xlDelimited, comma:=True이미지와 같은 결론이 위 한줄의 표현으로 간단하게 변환됩니다.OpenText 로 문서를 읽어 오는데 조건은 DataType:=xlDelimited, comma:=True 입니다. DataType:=xlDelimited : 구분.......추천 -
[비공개] API / VBA 세로운 엑셀파일 만들고 수정하고 저장하기
엑셀 파일을 만들고 수정하고 저장하는 과정을 코딩하는 연습을 해봅니다.엑셀 파일을 하나 열고 Ctrl+F11을눌러 VBA 에디터를 엽니다.VBAProject(Book1) > Microsoft Exel 개체 > Sheet1(sheet1) 을 더블클릭해서 에디터를 사용할 준비를 합니다. Sub 엑셀파일만들기()일단 제목을 하나 정해 주었습니다.오늘은 제 나름대로 이해한 방식으로 코딩해 보려고 합니다.책에 있는 예문을 그대로 복사하는 과정이 아니라 이해의 순서대로 기록해갑니다. Workbooks.Add에디터 작업하고 있는 기존 엑셀 파일에서 새로운 엑셀 파일을 하나 더 불러냅니다. handle = Workbooks.Count엑셀 파일이 2개가 되었으므로 handle 변수를 사용해서 엑셀 파일.......추천 -
[비공개] API /VBA 두 개의 엑셀 파일 읽고 합쳐서 출력하기
두개의 엑셀 파일을 읽어 들여와서 한개로 합치고 출력하는 방법에 대하여 알아 봅니다.DDE를 이용하여 데이터를 여러곳에 나누어 받을 경우 하나로 통합된 데이터가 필요한 경우 유용해 보입니다.일단 무작정 따라하기를 해봅니다. Sub 엑셀파일읽기() Dim f(2) As String Dim handle As Long Dim a As Range, b As Range Dim ai As Long, bi As Long f(1) = ThisWorkbook.Path & "D:\Users\PC\Desktop\file1.xlsx" f(2) = ThisWorkbook.Path & "D:\Users\PC\Desktop\file2.xlsx" Set a = ThisWorkbook.Sheets(1).Range("A1") ai = 0 For i = 1 To 2 Workbooks.Open Filename:=f(i) handle = Workbooks.Count Set b = Workbooks(handle).......추천 -
[비공개] API / VBA 복습하기
인터넷에서 자료를 검색하다가 VBA 기초에 대한 자세한 설명을 해놓은 더한스님의 블러그를 만났습니다.그래서 지금까지 배운 내용을 기본으로 복습 시간을 가져볼까 합니다. VBA 용어 코드 : 원하는 작업을 수행하기 위한 Code.VBA서 직접 작성하거나 매크로 기록기로 작성한다. 프로시저 : 작업을 수행하는 컴퓨터 코드의 단위서브(Sub) 프로시저와 함수(Function) 프로시저 두가지 형태의 프로시저를 지원한다.Sub는 일련의 명령문으로 구성되어 지고 Function는 하나의 배열을 반환하는 임시함수Function은 VBA에 탑재되어 있지 않은 임의함수를 만든다고 보면 된다. 모듈 : VBA 모듈은 엑셀 통합 문서에 저장된다.모듈을 보려면 VBA를 이용.......추천 -
[비공개] API / VBA 행 또는 열 삽입/제거 하기
엑셀을 사용하다 보면 행이나 열을 삭제하는 행동을 매우 자주하게 됩니다.셀을 지정하거나 삭제하거나 숨기기도 합니다.vba를 이용하여 이러한 동작을 구현해 봅니다. Cells(2, 2).EntireColumn.Insert Cells(2, 2).EntireColumn.Delete Cells(2, 2).EntireColumn.Select Cells(2, 2).EntireRow.Insert Cells(2, 2).EntireRow.Delete Cells(2, 2).EntireRow.Select Cells(2, 2).EntireRow.Hidden = True Cells(2, 2).EntireRow.Hidden = False Cells(2, 2).Activate Cells(2, 2).Clear 위의 구문들을 하나씩 실행해 봅니다. Sub 행삽입삭제() Cells(2, 2).EntireColumn.Insert Cells(2, 2).EntireColumn.DeleteEnd Sub F8 버튼을 한번씩 클릭하.......추천 -
[비공개] API /VBA 파일 읽고 쓰기
텍스트로 저장된 파일을 사용하기 위한 과정입니다.먼저 바탕화면에 텍스트 파일을 하나 만들어 줍니다. 제목 : 증권분석내용 : VBA 나도 할 수 있다. 위와 같은 텍스트 파일 하나 만들어서 보관해 두었습니다.이 파일을 어떻게 불러오는지 책자의 예문을 인용합니다. Sub ReadFile() Dim f As String Dim s As String f = "D:\Users\PC\Desktop\증권분석.txt" Open f For Input As #1 Do While Not EOF(1) Line Input #1, s '처리 내용 삽입 Debug.Print s Loop Close #1 End Sub 예문을 실행시켜 보니 증권분석 파일 안의 "VBA 나도 할 수 있다." 라는 문구가 직접 실행창에 나타납니다.일단 불러오기는 성공했습니다. 해석을 통하여 코딩 방법.......추천 -
[비공개] API / VBA 날자 사용하기
김경록님의 블러그에 날자 사용하기가 있어 따라해 보기로 했습니다.증권분석에도 당연 날자를 다뤄야 할것이니 배워 보기로 합니다. 엑셀폼에 다음과 같은 도표를 먼저 그려둔다.오늘을 이후로 들어올 계획인 상품에 대하여 입고일 기준 다음날 출고하기로 하고 그 날자를 미리 기록해 두려고 한다. vba 에디터를 열어 코딩해주고 돌려준다. Sub 날짜다루기()For i = 2 To 10 If DateTime.DateValue(DateTime.Now) < Range("B" & i).Value Then Range("C" & i).Select Selection.Value = Range("B" & i).Value + 1 End If NextEnd Sub 금일 이후에 들어오는 상품에 대하여 다음날로 출고일이 기록된다. 실행이 잘 되었으니 코딩.......추천 -
[비공개] API / VBA 루프(Loop)문 - Do ... Loop
반복문의 하나인 For...Next 을 복습하여 봅니다. For i = 1 to 10 변수 i 값은 1에서 10까지 반복하게 됩니다.이러한 방식은 변수의 반복 횟수를 알고 범위를 지정하는 방식이 됩니다.이번에 나오는 Do...Loop 방식은 변수의 반복하는 횟수를 알 수 없는 경우 사용합니다.따라서 언제 계속 반복을 하고 언제 반복을 멈춰야 할지를 알아야 하므로 각 반복 부분마다 멈춰야 하는 조건을 판단하는 조건 판별 부분이 있습니다. Dim Check, Counter Check = True: Count = 0 Do Do While Counter < 20 Counter = Counter + 1 If Counter = 10 Then Check = False Exit Do End If Loop Loop Until Check = flase 책의 내용을 적용해서 테스트 해보.......추천 -
[비공개] API / VBA 루프(Loop)문 - For ... Next
이번에는 반복문에 대한 이해를 해봅니다.반복문도 그리 어렵지는 않습니다. For i = 1 To 10 반복문의 주요 내용은 위의 코딩입니다. For 함수를 사용하며 i 는 변수입니다.즉 i 가 반복하는 변수이고 그 값은 1에서 10까지이다라는 의미를 갖고 있습니다. Sub For문배우기()For i = 1 To 10 Range("B" & i).Value = "반복" & i NextEnd Sub 위의 코딩을 실행하여 보면 원리를 바로 알게 됩니다. B1 셀을 시작으로 B10 셀까지 반복해서 글자가 나오고 있습니다.코딩을 해석해 봅니다. Sub For문배우기() '코딩제목For i = 1 To 10 '1에서10까지 반복 Range("B" & i).Value = "반복" & i '"B" & i 셀에서 시작해서 "반복" &a.......추천 -
[비공개] API / VBA 스크립트
셀에 관련된 스크립트 작성에 대하여 알아 봅니다.간단한 명령어를 이용하여 엑셀 폼에 문자나 값을 출력하는 작업입니다.alt + F11 클릭해서 VBA를 시작합니다.Sheet1 을 더블클릭해서 에디터 창을 열어 줍니다. Sub 증권분석()Sheet1.Range("A1").Value = "증권분석" 'Sheet1의 "A1"에 "증권분석"을 출력 하시오. End Sub .a1 셀에 "증권분석" 이라고 문자가 출력되었습니다. Sheet1.Range("A1").Value = "증권분석" 셀의 위치를 지정 셀의값=출력내용 이러한 구성으로 만들어지고 있습니다. Sub 증권분석() Sheet1.Range("A1:A10").Value = "증권분석" End Sub a1:a10 으로 지정하면 10열까지 문자가 나오게 됩니다.임의로 지정하는 셀에 원하.......추천