반응형

전체 글 118

[엑셀vba] 모듈이 아니라 변수나 프로시저가 필요합니다.

모듈 이름과 함수 이름이 같을 때 나타나는 오류이다. (이외에도 다른 경우도 있음) 모듈이나 함수 이름 둘 중 하나를 바꿔주면 해결 ! 위 같은 상황일 때 '컴파일 오류입니다. 모듈이 아니라 변수나 프로시저가 필요합니다.' 오류 창이 나타나게된다. 모듈이나 함수 이름만 변경해주면 오류는 사라진다. 모듈 이름 안바꾸고 쓴다면 보기 힘든 오류인 듯 하다. 이런 오류가 발생하는 이유는 간단하다. 오류메세지 그대로 변수나 프로시저 이름을 넣어야하는데 모듈이름이 들어가 있으면 나타난다.

[엑셀vba] Module 이름을 바꿔보자

엑셀vba를 사용하다가 모듈을 추가했는데 그 수가 많을 때 module1, module2, .... . module14 이렇게 표현된다면 뭐가 뭔지 헷갈린다. 모듈을 우클릭하면 이름바꾸기 옵션이 보이지 않는다. 그러나 VBA의 속성 창으로 모듈의 이름을 변경할 수 있다. 보기 메뉴에서 속성 창을 클릭하면 속성창이 나타난다. (VBA 화면에서 F4 키를 눌러도 나타남) 속성 창에는 이름 항목만 존재하고 요걸 바꾸면 모듈의 이름이 변경된다. ※ 주의점: 모듈 이름과 프로시저 이름은 다르게 설정해야함. 같을 경우 런타임 '13오류를 발생시킨다

[엑셀vba] 사용자 정의 폼에서 키 입력 받고 이벤트 실행하기

사용자 정의 폼에서 키보드 입력을 받고 이벤트를 실행해보자! 1. 키 입력받는 코드 입력받은 키 값을 표시할 용도로 레이블 하나를 생성하고 키를 입력했을 때 폼 화면에 나타나도록 만들어봤다. 키 입력이 있을 때만 표시하고 입력이 없으면 표시되지 않는다. Private Sub UserForm_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim Key As String Key = Chr(KeyAscii) Label1.Caption = Key End Sub 사용자 정의 폼에서 아무 키를 누르면 아스키코드의 10진수로 UserForm_KeyPress에 전달된다. ex) A = 65, a = 97 소문자 a를 입력하면 여기에 해당하는 아스키코드값인 97이 전달되고 ch..

[엑셀vba] 사용자 정의 폼 실행 중에 컨트롤 추가하기

사용자 정의 폼이 실행 중일 때 각종 컨트롤(텍스트박스, 레이블, 체크박스 등)을 추가해보자 1. CommandButton 추가 저 버튼을 누르면 커맨드버튼이 생성된다. Private Sub CommandButton1_Click() Dim Add_Ctrl As Control Set Add_Ctrl = Controls.Add("Forms.CommandButton.1") End Sub 기본적인 커맨드버튼 생성 코드이다. 이것만 실행하면 가장 기본적인 크기의 버튼이 생성되고 위치, 크기, 이름 등은 생성 후에 조정해주면 된다. Private Sub CommandButton1_Click() Dim Add_Ctrl As Control Set Add_Ctrl = Controls.Add("Forms.CommandBu..

[엑셀vba] 엑셀없이 사용자 정의 폼을 실행해보자

엑셀vba를 다루면서 왜 항상 엑셀이 실행되야 할까란 의문을 품었다. (너무 당연한 소리아닌가.. 엑셀vba니까 엑셀이 실행돼야지?) 그래서 vba를 쓸 수 있는 Visual Studio 2019 community 프로그램을 설치했는데 어떻게 써야할지 몰라서 안쓰고 있다... 혹시 엑셀로 어떻게 안될까 싶어서 구글링하고 연구해본 결과 엑셀없이 엑셀 사용자 정의폼을 실행 시키는건 불가능 한 듯 보였다.. 하지만... 뚜둔 엑셀없이 사용자 정의폼 실행! 와우 엑셀없이 사용자 정의폼이 실행되네??? 개쩌는걸 발견한듯?? ㅋㅋ 그러나 .. . . 엑셀없이 실행될 수 없는 운명인듯... 이거슨 눈속임에 지나지 않았다 . .. .. 그래도 엑셀없이 실행된거 같은 느낌을 준다. 엑셀을 실행시키면 열린 엑셀파일은 재빨..

[엑셀vba] 파워포인트 제어하기

MS Office의 가장 큰 장점은 VBA를 지원하는 것이라 생각된다. VBA 하나로 MS Office의 모든 프로그램들을 제어 할 수 있기 때문이다. 허허ㅏ하핳하 사용법이 조금씩 다른건 어쩔 수 없는 부분..? ㅇㅈ? ㅇㅇㅈ 엑셀vba에서 파워포인트를 제어하기 위해선 편집기에서 참조 하나만 해주면 된다. 참조를 추가하게 되면 파워포인트vba에서 사용할 수 있는 함수들을 엑셀vba에서도 써먹을 수 있게 된다. 엑셀과 파워포인트 차이점이라면 변수 형태가 달라진다. (다른 프로그램도 마찬가지) 엑셀은 sheet, workbook 으로 문서 변수를 선언한다면 파워포인트는 presentation, 워드는 document로 한다는 것을 알게되었다. (아직 알아가는 단계라 많은것을 알지 못함) vba로 파워포인트를..

[엑셀vba] 엑셀 파일 한꺼번에 암호걸기(23.01.13 수정)

예전에 만들었던 엑셀 한 방에 암호걸기는 오류도 있고 완성도가 상당히 떨어졌다. 이번에는 조금 더 나아진 코딩 실력으로 MS Office 프로그램들을 암호화하는 코드를 작성해봤다. 1.암호화 파일 새로 생성(기존 버전) 2.원본 암호화 버전(23.01.13 추가) 1. 매크로 구성 * 사용자 정의 폼 * Module1: 메인 * Module2: 폴더 선택 함수 2. 매크로 실행 영상 매크로 실행 영상 3. 매크로 동작 순서 1) 매크로 실행 2) 폴더 선택 3) 빈 폴더 일경우 종료, 파일이 들어있으면 진행 4) 사용자 정의 폼 띄우고 설정할 암호 입력 5) 파일 중 xls(xlsx, xlsm, xls), doc(docx, docm, doc), ppt(pptx pptm, ppt) 확장자들만 추출 6) 추..

[식물] 레방이 키우기 31일차

레몬과 방울토마토를 심은지 31일이 되었다. 레몬은 엄청나게 빠른 속도로 커간다. 식물 키우기 초보라 막 키우고 있는 중이다. 얘들이 목마른게 보일 때 물 좀 주고 그냥 방치형 게임처럼 내버려두었더니 이렇게 자랐다. 레몬키우기와 관련해서 이것저것 검색해봤는데 이렇게 키우면 레몬 열매는 맺지 않는다고 한다. 탱자나무 묘목에 접목시켜서 레몬나무로 만들어야 한다. 식린이에게 접목이라니 너무나 어렵게 느껴진다. 그래도 나의 목적은 레몬 수확이기 때문에 나중에 탱자나무를 구매해서 접목 시켜보겠다. 레몬 키우기 검색하면서 알았는데 레몬씨를 발아시킨 다음 흙에 묻어준다고 한다. 하지만 나는 그냥 씨앗상태로 심었음에도 잘 자라나는 것을 확인했다. 운이 좋은건지 원래 그냥 심어도 되는건지 잘 모르겠는데, 나의 레몬은 아..

[엑셀vba] 내가 만든 매크로 추가 기능에 추가하기

엑셀vba 초보시절(지금은 준초보) 개인용 매크로 통합 문서에 엑셀vba 코드를 저장해서 쓰곤 했다. (모든 엑셀에 적용시킬 매크로, ex. 저장할 때 자동으로 암호걸기) 하지만 이 방법은 엑셀 사용에 너무나도 불편함을 초래했다. 엑셀파일 열어놓고, 다른 엑셀파일을 열면 "개인용 매크로 통합 문서가 사용중입니다. 읽기전용으로 열래?" 이러니까 짜증났다. 그래서 다른 방법이 없는지 찾아봤는데 추가 기능이란걸로 해결할 수 있었다. 1. 코드 작성 엑셀파일을 생성하고 비주얼베이직 편집기를 열어 모듈 하나를 추가한다. 그리고 아래와 같은 코드를 작성했다. Sub 인사하는_매크로() MsgBox "안녕하세요. 매크로입니다.", vbOKOnly, "인사" End Sub 2. 파일 저장 코드 작성이 끝났으면 엑셀파일..

[엑셀양식] 계정 권한 변경 신청서

보안업무는 기록, 로그 자료가 필수다. 시스템 로그는 담당자가 관리하고 자동적으로 쌓이니까 쉽게 수집할 수 있지만, 인적 관리 보안과 연관되어 있다면 쉽지 않다. (어느정도 체계가 잡혀있는 기업 제외) 이제 막 보안 절차나 체계를 잡아가기 시작한다면 더욱 더 어렵다... 회사 보안 절차를 수립하고 사용자가 편하면서 보안업무에 도움이 될 양식들을 만들 예정이다. (본인한정) 계정 권한 변경 신청서 목적 ISMS 인증 심사 항목 중 계정 권한 변경에 대한 내역을 남기고 절차를 수립하게 되어있다. 그래서 만들었다. (시스템 변경 로그 외에 사용자가 신청한 기록도 남겨야함) 절차 계정의 권한을 변경하고자 하는 신청인이 보다 쉽게 작성할 수 있도록 자동화 양식을 만듦 작성 후 전송하기 버튼을 누르면 담당자 이메일..

프로그램/완료 2020.07.19

[식물] 오방이 키우기 1일차

다이소에서 신박한 아이템을 찾았다. '직접 재배해서 먹는 열매친구 텃밭세트' 제품은 방울 토마토, 오이와 적격자, 상추가 한 세트로 되어 있었다. 방울토마토와 오이를 선택했고 오늘부터 키우기 시작했다. 구성품은 무농약배양토(1.8L), 화분, 물받침대, 부직포, 씨앗 2종(방울토마토, 오이) 요렇게 되어있다. 씨앗 심고하는 방법이 나와있다. 근데 물은 언제 한 번씩 줘야되는지는 나와있지 않다. 그래서 나는 싹 틀때까지 물 주지 않을 생각이다. 자고로 식물은 강하게 커야지 씨앗 들어있는거 보니까 나중에 오이나 방울토마토 먹다가 안에 있는 씨앗 빼놓으면 될 듯 부직포가 무슨 역할인진 모르겠으나 설명서에 끼우라해서 끼워봄 이게 맞는지도 모름 부직포를 끼우고 배양토를 들이부었음 여기에 천천히 물을 부어 배양토가..

반응형