본문 바로가기

엑셀 VBA 배열 선언하기 엑셀에서 배열을 이해하기란 쉽지는 않습니다. 그래서 뭐라고 설명해야 할지 쉽지도 않습니다.그냥 여러 개의 값을 한 덩어리로 가지고 있는 값이라고 해야하나...아무튼 배열을 모르면 엑셀을 잘 하기가 쉽지 않습니다. 특히 VBA에서는 더욱 그런것 같습니다.배열을 활용하면 많은 변수를 하나로 사용하니 변수가 줄어들고 변수입력을 위한 노력이 줄고 실행속도도 빨라 집니다.그래서 배열을 많이 활용합니다. 배열(Array)이란? 배열이란 데이터형이 같은 여러 개의 변수를 하나의 변수로 연결한 것입니다.쉽게 설명을 드리면 기차가 1호차에서 10호차 까지 연결이 되어 있는것과 같습니다.각각의 변수들은 배열변수를 따라 다닙니다. 그리고 그 변수값을 반환 받고 싶을때 인덱스 번호로 호출합니다. 배열 변수 선언 방법 배열변수.. 더보기
엑셀 콤보박스(ActiveX컨트롤)에 리스트 입력방법 양식 컨트롤 콤보박스와 ActiveX컨트롤 콤보박스 중 Active 컨트롤 콤보박스에 리스트(목록)을 입력하는 방법에는 몇가지가 있습니다. ☞ 콤보박스에 리스트 입력방법1. ListFillRange 에 범위 입력셀주소로 리스트 범위 입력 : 리스트와 콤보박스가 같은 시트에 있는 경우 가능정의된 이름으로 리스트 범위 입력 : 리스트와 콤보박스가 같거나 다른 시트에 있는 경우 가능2. VBA 활용ComboBox.AddItemComboBox.ListFillRangeComboBox.List 위 방법중에서 VBA를 활용하여 ComboBox(콤보박스)에 목록을 입력하는 방법을 설명드립니다. VBA를 활용하여 콤보상자에 리스트(목록) 입력하기 앞에서도 설명했지만 VBA를 활용하여 콤보박스에 리스트(목록)를 입력하는 .. 더보기
엑셀 MsgBox 활용하기 처음 VBA를 접할때 제일 재미 있었던 부분이 MsgBox를 활용할 때 였던것 같습니다. 아직도 배워야 할게 엄청 많지만 그때는 VBA를 마치 다 배운듯한 느낌을 받았거든요. ^^ MsgBox 자체로는 크게 어려운게 없습니다. 상황에 맞는 버튼을 넣고 때로는 메시지 내용에 적합한 아이콘을 넣으면 끝입니다. 그 뒤로는 반환되는 값에 따라 적당히 코딩하면 되니깐요.MsgBox의 버튼종류와 아이콘 그리고 입력시 주의사항 정도만 알아보겠습니다. MsgBox 설명 변수 = MsgBox(Prompt, Buttons, Title, HelpFile, Context) 대화상자에 메시지를 표시하고 사용자가 선택한 버튼의 값을 반환 합니다. ☞ MsgBox의 인수Prompt : 대화상자에 표시할 메시지, 필수로 입력해야 함.. 더보기
엑셀 InputBox 함수와 메소드의 차이(VBA 오류의 원인?) PC로 업무를 보거나 물건을 사거나 할 때 흔히 접할 수 있는 대화상자 중 하나가 InputBox 입니다.사용자의 상태를 확인할 수 있는 PC와 사용자간의 정보를 주고받는 상자로만 알고있었는데 InputBox는 함수가 있고 메소드가 있다고 합니다. 저는 이 차이를 알기전에 InputBox에서 에러가 발생하는 경우가 있었는데 왜? 에러가 발생하는지 정확히 이해를 못했던것 같습니다. 만약 코딩 중 InputBox에서 오류가 발생한다면 이글을 유심히 읽어보셔야 합니다. InputBox 함수와 InputBox 메소드의 차이점 1. InputBox 함수와 메소드 형식의 차이는 InputBox 앞에 Application.을 넣어 주면 메소드가 되며 생략하면 함수가 됩니다.2. 두 형식의 가장 큰 차이는 반환하는 데.. 더보기
엑셀 연산자(VBA)의 종류 사칙연산은 초등학교때 배운 더하기, 빼기, 곱하기, 나누기 입니다. 사칙연산자 외에서 아래와 같이 다양한 연산자가 있는데 VBA에서 사용하는 연산자 입니다. 이 중에서는 몫이나 나머지를 구하는 연산자 등을 제외하고는 워크시트에서도 흔히 사용하고 있습니다. 워크시트에서 사용하는 연산자와 차이점 및 VBA 코딩 때 잘 생각이 나지 않는 연산자 등을 알아보겠습니다. 산술 연산자 ₩ : 몫을 구합니다. 워크시트의 QUOTIENT 함수와 같으며 워크시트에서는 +, - 처럼 바로 사용할 수 없습니다. Mod : 나머지를 구하는 연산자로 워크시트의 MOD 함수와 같습니다. 연결 연산자 문자와 문자 또는 문자와 숫자의 연결은 & 를 사용해서 결합합니다.+ 기호로 연결할 수 있지만 문자 + 숫자의 경우 오류가 발생하며 .. 더보기
엑셀 콤보박스 - 리스트 범위가 변하는 동적 콤보박스(양식컨트롤) 엑셀 양식을 만들때 흔히 많이 쓰는 컨트롤이 콤보상자(Combo Box) 입니다. 흔히 드롭다운(Drop Down) 박스라고 하기도 합니다. 개발도구에는 양식컨트롤과 ActiveX 컨트롤 2가지의 컨트롤이 있는데 그중에서 VBA를 잘 알지 못해도 흔히 사용하는 양식컨트롤의 콤보상자를 양식에 넣는 방법과 콤보상자의 입력범위가 추가되거나 줄어들때 자동으로 범위가 늘어났다 줄어드는 수식에 대해 설명 드립니다. 콤보상자(Combo Box) 삽입하기 1. 리본메뉴 [개발도구] - [삽입] - [양식컨트롤 콤보상자]를 선택합니다.2. [콤보상자]를 넣고 싶은곳에 그려 넣습니다.3. Alt키를 누르고 사각형을 그리면 셀의 모서리(교차점)에 정확하게 삽입 됩니다. 이름정의하기 품명을 콤보상자의 입력범위에 들어갈 셀범위.. 더보기
[엑셀] 이름정의로 데이터 유효성검사 동적(가변) 드롭다운 목록 만들기 데이터 유효성검사는 사용자가 셀에 입력하는 데이터 데이터 형식 또는 값을 제한 할 수 있습니다. 그 중에서 많이 활용하는 기능은 드롭다운 목록을 만들어 지정된 값을 입력하는 것입니다.드롭다운 목록은 콤보상자 (양식컨트롤 및 ActiveX 컨트롤)과 유사하지만 표와 같이 여러 셀에 적용하려면 유효성 검사가 훨씬 편리합니다. 그런데 드롭다운 목록은 그 목록수가 한정되어 있기보다는 추가되어 늘거나 줄어드는 경우가 있습니다.오늘은 목록의 추가에 따라 목록이 동적으로 변하는 가변 드롭박스 만드는 방법에 대해 설명 드립니다. 이름정의로 목록 범위 정의 1. 리본메뉴 [수식] - [이름정의]를 클릭합니다.2. [새 이름] 창에 [이름]을 입력하고 [참조대상]에 아래의 수식을 입력합니다.3. 수식 = OFFSET(Sh.. 더보기
[엑셀] 이름정의로 셀범위 참조하기 이름정의를 사용하면 다른 시트의 범위를 참조하여 복잡한 수식을 쉽게 이해 할 수 있습니다.때로는 수식을 쉽게 수정 할 수도 있습니다. 셀 또는 셀범위의 이름을 정의하는 방법은 크게 2가지 방법이 있습니다. ① 이름상자에 직접 이름을 입력하는 방법② 리본메뉴 [수식] - [이름정의] 또는 [수식] - [이름관리자(단축키 Ctrl + F3)] - [새로만들기] 이름상자에 이름입력 1. 위 그림에서 빨간 네모박스 부분이 [이름상자] 입니다.2. [이름상자]에 이름을 입력하기 전에 이름정의 할 범위를 선택합니다.3. [이름상자]에 이름을 입력 합니다.4. 정의된 이름은 단축키 Ctrl + F3 하여 [이름관리자] 창에서 확인 가능합니다. 이름정의 창에 이름 입력 1. 이름정의 할 범위를 선택합니다.2. [수식].. 더보기
엑셀 차트 예쁜 그래프 그리기(책꽂이 그래프) 책꽂이 그래프 입니다. 묶은세로막대형 그래프를 활용하여 만들었습니다.책장에 책을 꽂아둔 느낌의 그래프이며 도서의 판매량, 독서량 등 서적과 관련된 보고서나 제안서 등에 사용해보세요. 막대그래프에 색상을 넣는 대신 책의 마구리의 이미지를 넣어 만들었습니다.실제 책의 마구리 이미지를 이용하면 더 리얼한 그래프가 될 것 같네요. ^^ 묶은세로막대형 그래프 그리기 1. [삽입] - [차트] - [묶은세로막대형] 그래프 삽입 합니다. 2. [데이터 계열 서식] - [계열옵션] - [간격너비]를 5% 하여 막대그래프의 폭을 넓게 조정 차트(그래프) 그림 채우기 1. 책의 마구리 이미지 준비(실제 책의 마구리 이미지로 하면 더욱 리얼 할 듯하네요) 2. [데이터 요소 서식] - [계열 옵션] - [그림 또는 질감 채.. 더보기
엑셀 차트 예쁜 그래프 그리기(이퀄라이저 그래프) 이퀄라이저 그래프 입니다. 누적세로막대형 그래프를 활용하여 만들었습니다.이퀄라이저가 오디오에 소리를 조절하는 장치죠? 그래서 소음(dB)이나 뮤직, MP3, 문화 등 주제에 맞게 관련된 보고서나 제안서 등에 사용해보세요. 얼마전에도 이퀄라이저 느낌의 등락률을 나타내는 가로형 막대 그래프를 그렸습니다.이번에는 좀더 이퀄라이저 같은 느낌의 그래프입니다. 이퀄라이저 그래프 그리기 이퀄아이저 그래프는 [누적세로막대형] 그래프를 그림과 같이 막대 그래프와 버튼 그래프 2개를 합쳐서 만든 그래프 입니다. 이름정의 하기 차트를 그리기 전에 [수식] - [이름정의]를 클릭하여 이름을 정의합니다. 이름정의 참조 대상에 들어가는 수식은 아래와 같습니다. 이름은 작성자가 임의로 사용해도 무관합니다. ☞ 수식설명1. 상단 참.. 더보기