목록vba (68)
rand(life)
동일 값의 셀 병합하기 (출처: http://www.iexceller.com/) [표1]처럼 되어있는 것을 [표2]처럼 바꾸는 것입니다. (반대방향으로 (표2에서 표1로) 바꾸는 것은 이전에 올린 글을 참고하세요.)매번 긁기가 귀찮아서 파일로 만들었습니다^^; Sub SameCellMerge() Dim rngTarget As Range Dim rngCell As Range Dim strAddress As String Dim intNum As Long Dim intCount As Long Dim intTemp2 As Long Dim intTemp As Long Dim i As Integer Application.DisplayAlerts = False On Error GoTo ET ' strAddress =..
학교홈페이지에서 받은 수강신청 현황을 작업하기 좋게 정리하는 VBA. 이런 상태의 데이터가 이렇게 되게 만드는 방법이다. 반복작업이니 매크로로 기록하고, 몇군데 손만 봐주면 된다. 완성된 VBA 코드는 아래와 같다. Sub Macro2() Columns("A:E").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Rows("1:12").Select Selection.Delete Shift:=xlUp Columns("K:K").Select Selection.Delete Shift:=xlToLeft Range("J1").Select ActiveCell.FormulaR1C1 = "강좌명" ActiveSheet.Range("a1")..
지난 번에 쓴 글에서, 같은 조건의 문자열을 찾아 합치는 사용자정의 함수를 만드는 방법을 연구해 보았습니다. 제가 직접 만든 VBA코드가 아니고, 다른 분이 만드신 것을 올리고, 거기에 대한 설명을 제가 붙인 글이었습니다. 여기에 어떤 분이 질문을 하셨습니다. 그 내용을 요약하면, 신청 과목의 이름뿐만 아니라, 신청과목의 학점까지 조건을 주어서 표시할 수 있는가, 예를 든다면 신청과목중 3학점 이상되는 과목만 나열하도록 할 수 있는가 하는 내용이었습니다. 위의 그림에서 보듯이, 왼쪽의 표에는 신청과목과 학점이 표시되어있습니다. 여기서 학생별로 신청한 과목 중 3학점 이상만을 뽑아내어, 오른쪽 표에 보는 것처럼 신청과목을 나열하고 싶다는 것입니다. 결론을 이야기하면, 가능합니다. 그것도 아주 간단히 할 수..
어느 분이 댓글로 질문하신 내용입니다. http://flogsta.tistory.com/632#comment5458065 질문이 있는데요 만약에 같은 폴더 안에 있는 각각의 엑셀 파일에 동일한 메크로를 적용하고 싶을때는 메크로를 어떤 방식으로 돌려야지 가능한지 궁금해서 문의 드립니다. 제가 한 폴더 안에 엑셀 파일이 50개가 넘는데요 작업이 쉽지가 않아서요. 제가 가진 지식으로 해결할 수 없는 문제에 닥치면, 일단 구글의 도움을 빌립니다. 그랬더니, 역시나 답이 나왔습니다. 출처: http://www.eggheadcafe.com/software/aspnet/33007769/run-macro-on-multiple-files.aspx 다음의 매크로는 특정 폴더(여기서는 C:\Temp\)안에 있는 모든 엑셀..
2. [편집] 2.1 다른 이름으로 저장하기- 암호 걸기 2.2 행열 크기 조정하기 2.3 셀병합하기 / 병합 해제하기 2.4 행열 숨기기 표시하기/ 시트 숨기기 표시하기 2.5 시트복사하기 – 이동하기 2.6 정렬 및 필터 3.[차트] 3.1 간단한 차트 작성 3.2 차트 종류 변경 3.3 차트 구성요소 추가 - 데이터 값 표시하기 3.4 이중 축 차트 작성 3.5 차트에 도형 이용하기 3.6 아래아한글(HWP)에 차트 복사하기 4.[인쇄] 4.1 미리보기/ 용지 방향/ 여백 조절 4.2 용지에 맞게 축소(자동맞춤) 4.3 페이지나누기/ 페이지 나누기 미리 보기 4.4 제목줄 반복 인쇄 /머리글 - 바닥글 설정 / 페이지레이아웃 보기 5.[기타] 5.1 텍스트파일을 엑셀로 불러오기 5.2 수식 입력시 ..
지난번에 다루었던 "통합"기능은, 데이터가 한 줄 (예를 들면 A열)에만 나열되어있어야 가능한 방법이었다. 위의 그림처럼 여러 열에 걸쳐 데이터가 입력되어있을 때, 여러시트와 여러 열에 걸쳐 입력되어있는 특정인의 금액을 합산하려면 어떻게 할까? 일반 함수나 기능으로는 안될 것 같고, VBA를 이용해야할 것 같다 일단, 합계를 낼 시트의 이름을 total이라고하고, 맨 왼쪽에 놓는다. A열에 각 사람의 이름이 나열되고, C열에 금액을 입력할 예정이다. 책을 찾아보고 검색해서 연구한 끝에 매크로로 만든 것은 다음과 같다. Private Sub Macro1() Dim n, j As Long Dim i As Integer Dim k As Integer Dim m As Integer Dim t As Integer..
다음 그림과 같은 작업을 하고 싶을 때가 있습니다. 왼쪽처럼 학생들의 신청과목을 한 열에 한 과목씩 일렬로 받아둔 것을 오른쪽 그림처럼 한 학생의 모든 신청과목을 한 줄에 입력하는 작업입니다. VLOOKUP함수를 써서 10101을 찾아 한 칸 오른쪽에 있는 값을 불러오면, 맨 위에 있는 값만 가져오기 때문에 "영어"만 출력됩니다. 앞으로 엑셀에서 VLOOKUP함수가 두 번째, 세번째 일치하는 값도 찾을 수 있도록 옵션을 제공한다면 간단히 해결되겠지만, 그 전에는 이런 작업을 하려면 VBA를 사용해야할 듯 합니다. 다음은 ConcatText라는 사용자정의 함수를 만드는 VBA입니다. Alt + F11 하셔서 삽입-모듈에서 다음을 붙여넣으세요. Function ConcatText(ByVal 범위 As Ran..
원래 VBA는 어려워서 다루지 않으려고 했는데, 어느 분께서 이런 질문을 하신게 계기가 되어 VBA를 공부하고 있습니다. ^^ 내가 어떤 문장을 쓰면, 그 문장 중에서 해당 철자가 들어가 있는지 확인할 수 있도록 문장에 들어있는 각 글자마다 색을 입힐 수 있을까? 약간 생각해보니, 함수를 사용하면 힘들겠지만, VBA를 사용하면 될 것 같았습니다. 하지만 VBA까지 다룰 여유가 없었기에 차일피일 미루다가 잠이 안 오는 오늘밤, 문득 생각이 나서 만들어 보았습니다. 지금처럼, A열에 해당 철자들을 늘어놓고 C2셀에 문장을 쓴 다음 "확인"키를 클릭하면 지금처럼 A열에 있는 철자에 색깔이 표시되는 것입니다. 코드는 다음과 같습니다. Sub strfin() Dim i, k As Integer Selection...