-
[비공개] API / VBA 오류 처리 하기
프로그램을 작성하다 보면 오류가 많이 나오게 됩니다.오류에 대비하여 어떻게 처리할지 미리 구문을 작성해서 넣어주게 됩니다.오류를 수정하는 방법으로 On Error GoTo (Line)오류가 발생했을 때 프로그램의 흐름을 특정 라벨이 있으 곳으로 점프시킵니다.'라벨명:'으로 작성하며, GoTo문에서 지정했을 때 오류가 발생하면 프로그램의 흐름이 점프해서 이동하는 위치입니다. On Error Resume Next오류가 발생했을 때 발생한 오류를 무시하고 다음 행을 실행합니다.객체를 사용했을 때 이와 같은 오류 처리문을 사용하는 것이 좋습니다. On Error GoTo 0위의 두가지 방식과 같은 오류 처리는 vba의 기본 오류 처리를 무시하고 지정.......추천 -
[비공개] API / VBA 데이터 끝의 주소 반환 받기
시트안의 데이터를 받아 놓은 상태에서 마지막 셀의 주소를 알기 위한 코딩입니다.엑셀을 건반 작업으로 마지막 셀을 찾을 때 Cont + 아래화살표를 눌러 주게 됩니다.그러면 내용이 있는 셀의 마지막까지 한번에 도달합니다.이런 작업을 vba 에서는 End(xlDown) 함수를 사용하여 명령하게 됩니다.가장 위쪽 셀은(xlUp), 우측 끝셀은 End(xlToRight), 좌측 끝셀은(xlToleft) 입니다. 셀 이동에 대한 함수를 하나씩 이용해서 실습해 봅니다. 아래쪽 제일 끝 셀의 행 번호를 출력하고 있습니다. Sub 데이터끝주소() Dim r As Range Set r = Range("A1") Var = r.End(xlDown).Row MsgBox "a셀의 행 번호 : " & Var End Sub row 를 rows로 대체하.......추천 -
[비공개] API / VBA 시간 출력하기
앞전에 매초 마다 시각을 표시하는 방법을 배웠습니다.이것을 응용하여 원하는 셀에 시각을 넣기 연습을 해봅니다. 이미 배운 내용을 엑셀로 작업한 결과입니다.타이머 시작과 종료 두개의 버튼을 시트에 만들어 주고 모듈에 타이머를 작성했습니다.결과는 A1셀에 1초마다 시간이 갱신되고 있습니다. http://blog.naver.com/ijrhee/220640593689 A1 셀에 고정된 시간을 아래로 한줄씩 내려가면서 갱신되도록 해봅니다. 한줄씩 칸을 내려가면서 새로운 시간이 기록되고 있습니다.혼자서 해본 첫번째 코딩 수정입니다. 기존의 코딩에 몇가지 기능을 넣었습니다. 1. 시작하면서 시트의 기존 내용을 지우기.2. 새로운 시간이 들어오면 한줄씩 내려쓰.......추천 -
[비공개] API / VBA Timer 초단위 시간
인터넷 검색을 통한 초단위 사용법에 대하여 여러가지 방법을 찾아 보았습니다.timer 라는 함수를 이용하여 초단위 시간을 콘트롤 하고 있습니다.timer 는 1초 단위로 시간을 계산합니다.오전 1시는 1시간 * 60분 * 60초 = 3600의 값을 반환합니다.msec 계산도 합니다. Sub timer_2() Dim start_time As Double Dim end_time As Double stsrt_time = Timer Do Until start_time + 5추천 -
[비공개] API / VBA 사운드 알람 사용하기
소리를 만들어 봅니다. 엑셀폼에 사운드 알람 단추 만들어 줍니다. 코팅을 작성하여 버튼을 활성화 합니다. Private Sub CommandButton1_Click() WavAlarm End Sub 모듈을 하나 생성시키고 모듈에서 Option ExplicitPrivate Const SND_APPLICATION = &H80 Private Const SND_ALIAS = &H10000 Private Const SND_ALIAS_ID = &H110000 Private Const SND_ASYNC = &H1 Private Const SND_FILENAME = &H20000 Private Const SND_LOOP = &H8 Private Const SND_MEMORY = &H4 Private Const SND_NODEFAULT = &H2 Private Const SND_NOSTOP = &H10 Private Const SND_NOWAIT = &H2000 Private Const SND_PURGE .......추천 -
[비공개] API / VBA 타이머 만들기
타이머를 만들어 보겠습니다.프로그램을 시각에 맞추어 자동시작하거나 매초 매분 들어오는 신호들을 확인하거나 정해진 시각에 프로시저를 실행시키는 등 시간과 관련된 작업을 하기 위해서 시간을 다뤄 봅니다. 이번에는 모듈 기능을 이용하여 만들어 봅니다.모듈은 어느 시트에도 속하지 않는 독립된 코드창입니다.Sheet에 프로시저를 작성하면 해당 sheet에만 작동하지만 모듈에 작성하면 모든 sheet에 영향을 줍니다.프로그램 전체에서 사용되는 전역변수나 코드를 작성할 때 주로 사용합니다.전역변수는 프로그램 어디서나 불러와 사용할 수 있습니다. 차례대로 클릭해서 새로운 모듈을 하나 만들어 줍니다.만들어진 모듈을 더블 크릭해서.......추천 -
[비공개] API / VBA 폴더목록 세부 정보 가져오기
폴더 목록을 가져오는 연습을 했었습니다.이번에는 목록을 가져올 때 목록에 들어있는 세부 정도도 같이 가져오는 연습을 해봅니다. Sub 폴더세부정보가져오기() Dim f1 As String, f2 As String Dim r As Range Dim row As Long f1 = "C:\Windows" If Right(f1, 1) "\" Then f1 = f1 & "\" f2 = Dir(f1, vbDirectory) If f2 = "" Then MsgBox "존재하지 않는 경로입니다.", , "경로명 오류" Exit Sub End If Set r = ThisWorkbook.Sheets(1).Range("A1") Cells.Clear Cells(1, 1) = "파일/폴더" Cells(1, 2) = "이름" Cells(1, 3) = "크기(bytes)" Cells(1, 4) = "날자/시간" row = row + 1 Do While f2 "" If f2추천 -
[비공개] API / VBA 폴더와 파일 목록 출력하기
수많은 데이터를 받아 저장하고 이를 관리하기 위하여 파일이름들이 필요하게 됩니다.일단 이 파일목록을 어떻게 불러오는지 알아 봅니다. 전체 파일 목록 불러오기 Sub GetfileList() Dim mask As String Dim f As String mask = "D:\Users\PC\Desktop\*.*" f = Dir(mask) Do While f "" Debug.Print f f = Dir Loop End Sub f = Dir(mask)이번 코딩에서는 Dir() 함수가 새롭게 나옵니다.Dir() 함수는 한번 호출 할 때마다 괄호 안에 들어오는 패턴이나 파일속성, 또는 드라이브 볼륨레이블과 일치하는 파일 등을 차례대로 하나씩 불러와서 그 파일 이름을 문자열로 리턴합니다.첫실행시에 () 안에 한번의 조건만 지정하면 다음 사용시.......추천 -
[비공개] API / VBA 엑셀폼에 버튼 만들기
엑셀 폼에 버튼을 만들어 보겠습니다. 버튼을 만들기 위해서는 개발도구가 필요합니다.엑셀에 개발도구가 없다면 옵션을 추가하여 줍니다. 엑셀시트 좌측 상단부근의 엑셀 로고를 클릭하면 Exel옵션이 있습니다.클릭하고 들어가면'리본메뉴에 개발도구 탭 표시' 항목이 있습니다.체크해 주면 리본 메뉴에 개발도구가 설치 됩니다. 개발도구 > 삽입 > ActiveX > 버튼을 선택하고 폼에 단추의 위치와 크기를 대략적으로 드래그하여 줍니다.이후에 크기와 위치 모두 수정이 가능하므로 적당한 위치를 선정하면 됩니다. CommandButton1 제목으로 버튼이 하나 만들어 졌습니다. 단추 이름을 변경하려면 단추 우클릭하고 속성을 선택합니다.속.......추천 -
[비공개] 단기 시황
주말입니다.한주 동안 거래 잘 하셨는지요한주가 모여서 한달이 되고 한달이 모여서 일년이 됩니다.그간 쌓아 놓은 수익은 플러스를 유지하고 계시겠지요마이너스라면 잠시 휴식하시면서 뒤를 돌아 보는 여유를 갖어 보시기 바랍니다.분명 마이너스 되는 원인이 있을겁니다.찾아서 모질게 버리고 다시 시작하시기를 바랍니다.과거와 같은 생각, 같은 습관, 같은 실력이라면 마이너스 현상은 계속됩니다.어느날 갑자기 수익이 저절로 만들어 지는 드라마같은 일은 현실에서는 일어나지 않습니다. 하락추세가 지속적으로 강화되더니 요즘은 조금 상승하는 모습을 보여주고 있습니다.하지만 아직은 직전 하락추세선을 벗어나지는 못한 지점에 있습니.......추천