본문 바로가기

프로그래밍(Programing)/엑셀매크로_vba(Excel-Macro)

원하는 위치에 파일 저장하기 (수동적으로 ) 이미 기존에 있던 매크로 엑셀들은 파일 저장을 한 위치에만 저장이 되어있어 다른 컴퓨터에서도 그 매크로를 사용하려면 그 위치에 맞는 폴더경로가 있어야지 오류없이 쓸 수있다. 즉 그 경로에 폴더가 없음 에러가 떠서 사용을 못하는데, 원하는 위치 저장할 수 있게 바꾸기 위해 이것저것 찾아보면서 해결했다. Application.FileDialog(msoFileDialogFolderPicker) 위에 함수가 파일 탐색기 열어 폴더 위치를 잡아준다. 참고로 Application.PathSeparator = '\' 이다 나머지는 전에 썼던 workbook을 활용해 저장했다. 아래는 활용한 매크로다. 더보기
엑셀 → 텍스트파일 [FileFormat]종류 0 엑셀 매크로로 만들어진 내용을 다른 프로그램에서 사용하기 위해 텍스트 파일로 변환할 경우가 있었다. 이 과정을 하면서 좀 더 쉽게 코딩할 방법이 없을까 생각하고 찾아보니 기존방식은 Object상위 클래스에서 기능을(Createtextfile) 사용해 한줄 한줄 넣었으면 엑셀 함수(ActiveWorkbook)를 사용해 코딩수를 크게 줄일 수 있었다. (4줄 끝!) 즉 내용물이 있는 시트를 새로운 텍스트 파일형식으로 변환 해준다고 본다. 그런데, 이 방식을 쓸 때 문제가 발생했고 그 방법을 해결하려면 FileFormat를 바꿔줘야 한다는걸 알았다. Object과 ActiveWorkbook 방식이 서로 접근하는 방법이 다르지만, 파일 형식을(.txt , .log등) 변환해주는것은 같다. 여기서는 ActiveW.. 더보기
선택한 셀의 행,열 위치 저장하기2 https://hingle.tistory.com/37 선택한 셀의 행,열 위치 저장하기1 필요한 매크로를 만들던 중 시트안에서 규칙대로 있는 문단?영역? 범위들의 똑같은 반복 작업을 실행하기 위해서 만드 매크로를 다른 분들도 사용할 일 있을까 써보려고 한다. 위에 말한 규칙 hingle.tistory.com 위에 글에 이어서 나올 내용은 엑셀에 내장 함수입니다. Set 변수 =Application.InputBox( ) 변수주소 = 변수.Address Range(변수주소).Select 변수주소의행 = Selection.Row 변수주소의열 = Selection.Column 다른 방식도 있을 수 있습니다. 저는 찾다보니 이 방식이면 동작할것 같아 씁니다. 우선 Application.InputBox( )에서 제.. 더보기
선택한 셀의 행,열 위치 저장하기1 필요한 매크로를 만들던 중 시트안에서 규칙대로 있는 문단?영역? 범위들의 똑같은 반복 작업을 실행하기 위해서 만드 매크로를 다른 분들도 사용할 일 있을까 써보려고 한다. 위에 말한 규칙있는 영역이란 아래그림을 말하는데 아래 그림은 간단하게 설명하려고 4개의 영역만 보였지만 제가 진짜 만들건은 가로 4개(최대7개이상) 아래로 8개 이고 좀더 고려할 변수가 많습니다. 내가 하고 싶은건 1. A영역 1번셀부터 32번 셀까지의 원하는 작업을 한다. 2. 1을 다하면 B영역으로 가서 1과 똑같이 작업을 한다. 3. B를 다하면 C로, C를 다하면 D 작업을 한다. 이렇게 반복작업을 원한다. 이렇게 하기위해 알고리즘을 짜봤는데 옆으로 몇번 반복할건지?(A -> B 2번) 아래로 몇번 반복할건지?(A -> C 2번).. 더보기
정렬- 오름내림 차순(엑셀함수사용과 아닌것) 엑셀 함수가 없었더라면 vbe에서 지금행 자료와 다음행 자료를 비교하여 행을 바꿀지 검사하는것을 모든 경우의수를 생각하여 반복처리했어야 했다. (명령어가 많아짐 거의7줄이상) 하지만 엑셀함수를 알고 나서 한줄로 요약하고 훨씬 빠르게 처리가 가능하다. 아래는 예시다. 설계에서 나온 이름과 x,y좌표를 빼내 x 와 y사이의 거리로 길이를 뽑아낸 상태에서 길이를 기준으로 내림차순한 모습이다. 만약 매크로없이 바로 실행하려면 아래와 같이 사용자 지정 정렬을 이용하는 방법이 있다. 엑셀 함수가 없었다면 {비교할 행 개수 X (비교할 행 개수-1) } 반복 비교를 해야 하는데 단점이 있다. 비교할 행 개수가 적으면 상관이 없겠지만 설계 파일에서 비교할 행의 개수는 2만개가 넘는다. 20000 x 19999 반복 실.. 더보기
매크로(VBE) 사용 용도 VBE는 Visual Basic Editor로 편집기를 말합니다. 엑셀 매크로의 사용용도는 정말 많지만 대표적인게 단순한 동작들을 반복해야 하는 상황에서 그것들을 기록해 두어 자동으로 처리하는 거라고 생각합니다. 이것을 매크로 기록으로 해두어 사용하는 법이지만, 저는 회사에서 매크로 용도는 위에 단순한 방식도 가끔 만들지만, 설계파일에서 가져온 자료(NET, CLASS, CLINES segmentXY, VIA등)를 원하는 정보만을 추출해서 보여주거나(이걸 크롤링이라고 해야 할까요?), 다른 파일로 저장하거나(개인적으러 worksheet함수쓰면 편하다), 제일 중요한 용도인데 검사프로그램을 하기위해 원하는 정보를 뽑고 정보를 내가 만든 알고리즘?에 넣어 분류하여 보여준다. 검사프로그램 예) 각도, 저항 측.. 더보기
VBA(Visual Basic for Application) 언어의 생각 https://terms.naver.com/entry.naver?docId=3434492&cid=40942&categoryId=32838 VBA 마이크로소프트 오피스 시리즈에 탑재되는 프로그래밍 언어이며, 기계어로 변환하는 컴파일 단계 없이 직접 실행이 가능하다. 마이크로소프트 사가 1990년대에 개발한 범용 프로그래 terms.naver.com 학교에서 프로그램언어를 처음 배울때 자바 c언어를 배울줄 알았다. 하지만 vba(엑셀툴에 들어있는게 아닌 오리지널vba툴)로 for,if문도 아니고 메뉴창, 메뉴바(카테고리) 만들기와 간단하게 계산기와 배열? 정도로, 아주 작게나마 알고리즘을 이해한 한학기를 배웠던게 나의 vba 공부였다. 그 이후엔 군대마치고 복학해 2학년에 웹페이지 제작에 필요한 php언어,.. 더보기

728x90