업무 스킬/Excel VBA(43)
-
[엑셀 VBA] GoTo문 이용 하여 다른 Sheet Cell 선택하기
위와 같이 코드를 작성하다 보면 다른 Sheet의 Cell을 Select 하면서 마무리할 때가 있다. 예를 들면 Data를 불러오고 특정 Cell을 선택할 경우가 있다. 근데 이상하게 VBA에서는 다른 Sheet의 Cell을 선택하면 에러가 난다. 자.. 위처럼 Sheet(1)의 위치에서 Sheet(2)의 cells(1,1)을 선택하면 에러가 난다. 그러면 에러를 피해서 어떻게 해야 되냐 이런 빙신(氷神) 같은 코드를 써야 된다. 욕 아니다 얼음의 신이다. 신고 ㄴㄴ 이러니 VBA가 욕을 먹지 무튼 저렇게 하지 않기 위해선 [Application.GoTo]을 써야 하는데 해당 문은 아래와 같다. Goto 다음에 두 개의 변수가 나오는데 Reference := 가고자 하는 위치 Scroll := 선택된 C..
2021.02.24 -
[엑셀 VBA] Split을 사용한 텍스트 나누기
예전에 포스팅한 [TextToColumns]를 써서 텍스트 나누기가 정석이긴 하지만 Data가 많을 때는 이상하게 오래 걸린다 Data가 많을 때 쓰는 코드가[Split]인데 이걸 배열과 적절하게 섞어서 써야 속도가 빠르다. 일단 Split의 표현식은 위와 같다. 두 개만 알면 된다. 배열 as String = Split ( Data, "구분자") # 구분자 Default 값은 빈 공간 ""이다. 예시를 보자 위 Data들을 Split 할 건대 1. 빈 공간을 기준으로 Split 2. "대리"라는 글자를 기준으로 Split 할 거다. 코드는 아래와 같다. 너무 간단해서 설명은 따로 안 하겠다. 여기서 [Ubound]는 Numbering을 나타낸다. 엑셀에서 배열은 기본적으로 0부터 시작하니 +1을 해줘야..
2021.02.22 -
[엑셀 VBA] 차트 제목 두 줄로 작성하기
위와 같이 차트 제목을 큰제목, 부제목으로 작성할 경우가 종종 있다. 이럴 경우에는 매크로를 어떻게 작성해야 하는지 알아보자 여기서 특이할 점은 ChartTitle의 Text를 글자별로 조절할 수 있다는 것이다. 아래에서 보겠지만 미리 언급하면 Characters라는 것인데, 아래 설명을 보면 알 수 있듯이 글자의 길이를 이용하여 특성을 조정할 수 있다. 그럼 전체 코드를 보자 먼저 제목으로 사용할 두개의 String을 정해준다. 여기선 "영업부 매출"이 첫번째 줄이고 "분기별 구분"이 두 번째 줄이다. 그리고선 Chart를 Cht라는 변수로 저장을 해주고 With 문을 사용하여 그 특성들을 조절해준다. Chart 코딩은 특히 이상한 것들이 많이 들어가서 With를 써줘야 많이 타자를 많이 줄일 수 있다.
2021.02.16 -
[엑셀 VBA] 차트 제목 설정(제목, Font, Size, Color, Bold)
위와 같이 차트를 생성했다면 차트 제목을 설정해주는 매크로를 작성해보도록 하자 차트 제목 매크로는 다음과 같다. 설명을 하면 먼저 "Cht" , "Title"이라는 변수를 만들어줘서, 각각 현재 차트와 차트 제목으로 쓸 글씨를 저장해준다. 그다음으로는 차트 제목을 쉽게 제어할 수 있게 두 개의 With문을 써준다. 먼저 현재 Chart1의 변수인 Cht를 첫 번째 With문 두 번째는 차트 제목의 Text를 제어할 수 있는 Wtih문을 설정한다. Hastitle = True는 차트 제목을 생성시켜주는 코드이다. 두번째 차트 제목의 Text를 제어할 수 있는 CharTitle.Format.TextFrame2.TextRange는 눈으로 대충 익히고 있어야 한다. 이후는 위에 주석을 달아놓은 것으로 작성해주면..
2021.02.14 -
[엑셀 VBA] Chart 원하는 계열만 표시 하기(Filtered)
Chart에서 원하는 계열만 표기하고 싶을 때가 있다. 유저폼에서 종종 쓰이는데 유저폼 까지 다 깔 수 없으니 기본 코드만 적어보도록한다. 우선 아래의 Data의 Chart를 생성해보도록 하자. 차트 생성 코드는 앞 포스팅에 있으니 자세한 설명은 생략하도록 한다. 차트 생성으로 위와 같은 차트가 생성되었다. 여기서 우리는 "1분기" 계열만 따로 비교하고자 한다. 쓰일 코드는 SeriesCollection(Index).IsFiltered = Fasle or True 이다. 뭐 이렇게도 쓰이지만 정석은 For Each 구문을 사용하는 것이 간편하다 주의할 점은 For Each 구분에서 총 Series를 나타내는 것은 FullSeriesCollection이다 "Full"을 써줘야 한다. 코드를 보자 그냥 위와..
2021.02.09 -
[엑셀 VBA] Find 함수 써 놓은 거 복.붙 가능.
▼아래는 복붙 Sub test2() Dim Data_All As Range, Find_Cell As Range Dim Find_Str As String '■ 기본 Data 설정 =========================== Set Data_All = Columns(1).SpecialCells(2) '찾고자 하는 범위 입력 Find_Str = "Data" '찾으려는 문자열 입력 하면 됨. '========================================== Set Find_Cell = Data_All.Find(Find_Str, Lookat:=xlPart) Find_Cell.Select '부분일치는 : xlPart, 모두일치는 : xlWhole 포스팅 중, Find 함수 관련이 검색이 많이 되서..
2021.02.06