728x90

분류 전체보기 197

[VBA] 선택한 행/열 강조하기

매우 큰 표에서 선택된 셀의 열제목이나 행제목을 쉽게 볼 수 있도록 십자 형태로 셀 색을 바꾸어 줄 수 있습니다. 이미 사용자가 셀에 바탕색을 입력했을 수도 있으므로 이 것을 훼손하지 않고 작업하려면 조건부 서식을 이용해서 선택된 경우에만 표시가 되고, 그렇지 않은 경우에는 원래의 색이 표시되도록 합니다. 주의할 점은 이 기능을 사용하면 모든 선택 변경시마다 "매크로가 실행" 되므로 Excel의 "되돌리기(Undo)" 기능은 작동하지 않게 됩니다. 우선 아래와 같이 이름 관리자에서 "MyRange"나 원하는 이름으로 아무 셀이나 참조대상으로 설정합니다. 주의할 점은 처음 지정하는 "MyRange"이름의 범위(S)에 반드시 "통합 문서"로 지정해야합니다. 처음 지정에 'Sheet1'같이 특정 시트를 지정하..

Excel - VBA 2023.11.25

문제은행 (ExamBank)으로 시험준비 하기

예전에 만들어 둔 파일을 잊어버리지 않으려고 정리해서 올려 둡니다. 시험을 준비할 때, 문제를 써보기만 해도 공부가 조금은 더 되지 않을까요? 시험문제를 입력하면서 한 번 공부하고, 입력한 후에는 문제를 자동으로 섞어서 풀어보고, 틀린 문제는 한 번 더 풀어보고, 내가 입력해 놓은 해설도 보면서 공부 할 수 있는 샘플입니다. ㅁ 시험보기 옵션 설명 진행방식이 "자동"이면 정답을 입력하면 바로 결과가 확인되고, 다음 문제로 넘어 갑니다. 진행방식이 "수동"이면 [정답확인], [다음문제]를 클릭해야 진행이 됩니다. 음성결과가 "무음"이면 소리는 나지 않고, 알림창으로 결과를 알려 줍니다. 음성결과가 "소리"이면 소리로 결과를 알려 줍니다. [정답확인]시 정답인 경우 음성/알림창 내용은 F1의 정답 안내 내용..

Excel - VBA 2023.11.24

[Office] 문서에 저장할 이미지 자동압축 해제하기

Office 문서인 Excel, Word, Powerpoint에서 문서에 이미지를 삽입하게 되면 기본적으로 220dpi 수준으로 자동 압축하여 저장하게 됩니다. 각 문서의 이미지 압축 방식을 수정하려면 옵션-고급-이미지 크기 및 품질 부분에서 지정을 해 주면 됩니다. [파일의 이미지 압축 안 함]을 선택하면 원본 해상도 그대로 저장하여 파일 용량이 커집니다. 이 옵션을 선택하지 않으면 [기본 해상도]로 저장하는데, "고화질"을 선택하면 Excel에서 파일 용량을 허용하는 크기까지는 압축을 하지 않고 저장합니다. "330dpi", "220dpi", "150dpi", "96dpi"는 순서대로 이미지 품질을 떨어뜨려 용량을 작게합니다. 그런데, 이 옵션은 현재문서만 옵션을 수정할 수 있지, 이후 새로 생성하는..

Excel - Sample 2023.11.22

[Excel] 연승, 연패 또는 연속된 값의 Count

경기 결과 승무패를 계속 기재한 자료에서 연속으로 승리한 연승이나 연속으로 패배한 연패의 최대수를 계산하는 수식입니다. 1. Index함수와 Find, Rept 함수를 이용한 방법 최근에 Excel 2021이나 Microsoft 365는 배열을 지정하면 자동으로 배열함수로 계산을 하지만, Excel 2019이하 버전은 Ctrl+Shift+Enter로 입력하거나 INDEX함수를 사용해야 합니다. 아래는 INDEX함수를 이용하여 배열을 만들어 최대값을 찾아내는 방법입니다. 경기 결과가 C4:V4 범위에 기재되어 있을 때의 수식은 아래와 같습니다. =MAX( INDEX( ISNUMBER( FIND( REPT( W$3, ROW($A$1:$A$20) ), CONCAT($C4:$V4) ) )*ROW($A$1:$A$..

Excel - Sample 2023.11.08

[VBA] RTF(Rich Text Format) 을 Plain Text로 변경

RTF 자료를 일반 문자열로 변경이 필요할 때 클래스 모듈을 삽입하고 이름을 clsRTFParsser 로 하고 아래 코드를 삽입합니다. Option Explicit '//32bit 버전 출처 : https://stackoverflow.com/a/1747886 #If VBA7 Then '// 64Bit용에는 PtrSafe 적용, LongPtr로 변경 Private Declare PtrSafe Function GlobalAlloc Lib "kernel32" (ByVal wFlags&, ByVal dwBytes As LongPtr) As LongPtr Private Declare PtrSafe Function GlobalLock Lib "kernel32" (ByVal hMem As LongPtr) As Lon..

Excel - VBA 2023.11.02

SHEETSLIST 함수

【 함수 요약 】 현재 Excel 파일의 시트 목록을 작성합니다. 시트가 많은 경우 시트 목록을 만들 수 있고, HyperLink함수를 사용하면 목록에서 시트로 이동할 수도 있습니다. 이 함수는 EGTools 추가기능에서 지원하는 함수입니다. 【 적용 버전 】 Windows용 : 모든버전 【 함수 구문 】 = SHEETSLIST ( [ ExceptMe ] , [ OnlyWorksheet ] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 ExceptMe 선택 True 함수가 사용된 시트를 제외할 지 여부 True : 기본값으로 현재 시트의 이름을 제외하고 목록을 작성 False : 현재 시트를 포함하여 목록을 작성 OnlyWorksheet 선택 True 워크시트만 작성할 지 여부 True : 기본값으로 ..

[Excel] 휴일이면 이전/이후 근무일 찾기

EGTools 전용함수에 FindWorkDay 함수가 있는데, 이걸 순수한 Excel 함수로 구현하는 방법이 있어서 소개합니다. 이전 근무일 =MAX( INDEX( (날짜 ROW($A$1:$A$30)+1) * (NETWORKDAYS.INTL(날짜 - ROW($A$1:$A$30)+1, 날짜 - ROW($A$1:$A$30)+1, 1, 휴일목록)=1), ) ) 이후 근무일 =MIN( INDEX( (날짜 + ROW($A$1:$A$30)-1+100000) * (NETWORKDAYS.INTL(날짜 + ROW($A$1:$A$30)-1, 날짜 + ROW($A$1:$A$30)-1, 1, 휴일목록)=1), ) )+100000 원리를 간단하게 설명하면, INDEX를 이용해서 날짜를 기준으로 전/후 30일의 배열과, 전/후 ..

Excel - Sample 2023.10.10

[VBA] Characters.Font.Color Error

작성된 시트에서 셀내 글자색을 지정하여 사용한 경우 일부 글자색을 다른 글자색으로 일괄 변경하는 매크로입니다. Cell.Characters(i, j).Font.Color를 이용해서 하는 작업인데, 사용중 알 수 없는 오류가 발생하는 경우가 있습니다. Sub FontColorChange1() Dim C As Range, iCnt As Long, i As Long Dim Color1 As Long, Color2 As Long, Color3 As Long, Color4 As Long, Color5 As Long, Color6 As Long, Color7 As Long, Color8 As Long, Color9 As Long, Color10 As Long, Color11 As Long, Color12 As Lo..

Excel - VBA 2023.10.10

EXPLODE 함수

【 함수 요약 】 선택된 범위에서 다른 값은 그대로 유지하고 지정하는 열에 대해서 구분자를 기준으로 분해하여 나열합니다. 지정하는 열에 대해서 TextSplit을 실시하고, 나머지 열은 그대로 사용하여 확장합니다. 이 함수는 EGTools 추가기능에서 지원하는 함수입니다. 【 적용 버전 】 Windows용 : 모든버전 【 함수 구문 】 = EXPLODE ( DataArray, Col_num , [ Delimiter ] , [ ByCol ] , [Pad-With] ) 【 함수 인수 】 인수명 옵션 기본값 설 명 DataArray 필수 없음 데이터 범위나 배열 Col_num 필수 없음 내용을 분해할 열 번호 Delimiter 선택 " " 구분자, 생락하면 공백(띄어쓰기)를 사용함 여러 개를 지정할 경우 {"..

Excel2010 이하에서 Sheet() 함수 사용하기

Excel 2013 부터는 Sheet() 함수가 지원되어 현재 시트의 Index 번호를 알아오기 쉽습니다. 그럼 2010아니 2007에서 사용하려면 어떤 방법이 있을까요? 정의된 이름에서 Macro 4 함수를 사용하여 정의한다면 비슷하게 사용할 수 있습니다. 먼저 이름관리자에서 아래와 같이 이름을 정의합니다. SheetNames = REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),"") SheetName =MID(CELL("filename",!B15),FIND("]",CELL("filename",!B15))+1,100) SheetNum =MATCH(SheetName, SheetNames, 0) 이제 필요한 수식에서 아래와 같이 사용합니다. 아래와 같이 배열된 ..

Excel - Sample 2023.09.18
728x90