Daily Life of BlueRose
728x90

컴퓨터 & 코딩 공부 82

엑셀 VBA 기본기능 정리 - 폴더 존재여부 확인 및 생성

엑셀 VBA 기본기능 정리 - 폴더 존재여부 확인 및 생성 Sub toImage() Dim 상위경로 As String Dim 하위경로 As String Dim 파일명 As String 파일명 = u1_1성명.text & Left(u1_2주민등록번호.text, 6) 상위경로 = ThisWorkbook.path & "\" & Date & "\" 하위경로 = ThisWorkbook.path & "\" & Date & "\" & 파일명 & "\" If (Dir(상위경로, vbDirectory) "") True Then MkDir 상위경로 If (Dir(하위경로, vbDirectory) "") True Then MkDir 상위경로 End Sub Dir 함수 개요 : Dir(경로, 세부 조회 조건)으로 구성되는 간..

엑셀 VBA 기본기능 정리 - 아이피 검증

엑셀 VBA 기본기능 정리 - 아이피 검증 WMI(Management Instrumentation) : 윈도우에서 관리 데이터 및 작업을 위한 인프라 개요 : WMI를 통해 컴퓨터 정보를 불러오는 쿼리를 실행하여 그 중 IP값을 추출하는 코드이나, WMI 개체가 이해하기 어려운 별도 시스템이므로, 이해보단 활용에 주안점을 두는 것이 좋겠다. Sub 아이피검증() 'IP검증 Dim objWMI As Object Dim objQuery As Object Dim objQueryItem As Object Dim vIpAddress Dim i As Long i = 1 'Create WMI Object Set objWMI = GetObject("winmgmts:\\.\root\cimv2") 'Query WMI Se..

엑셀 VBA 기본기능 정리 - 파일 조작

엑셀 VBA 기본기능 정리 - 파일 조작 열기 및 닫기 Dim originFile Set originFile = Application.GetOpenFilename If originFile = Empty Then Exit Sub Set originFileWB = Workbooks.Open(fileName:=originFile, Password:="p.w.") originFileWB.Close savechanges:=False 폴더 내 모든 엑셀파일을 하나로 통합하기 sub GetDataInfolder() Dim strPath As String, fName as String Dim wb As Workbook Dim rngS As Range Dim cntRows as Long sheet1.UsedRange.O..

엑셀 VBA 기본기능 정리 - ActiveX 개체 활용하기

엑셀 VBA 기본기능 정리 - ActiveX 개체 활용하기 개요 ActiveX 개체 : 버튼, 드롭박스, 라디오버튼, 레이블 등 양식을 만들고 이를 프로시저에서 변수로 불러오거나 이벤트를 정의할 수 있는 개체 주의사항 ActiveX개체와 달리 단순 양식개체는 성능은 비슷할지 모르나 매크로창에서 OLEObject로 불러올 수 없는 결정적인 차이가 있다. 개체의 하위종류에 따라(옵션버튼, 체크박스, 텍스트박스 등) 가질 수 있는 속성값이 다르므로 특정 속성값을 검색하는 for문을 만들 경우 종류별로 접근법을 달리해야 한다. ActiveX개체가 많을수록 시트를 복사하고 불러오는데 매우 느려진다. ActiveX개체를 그룹으로 묶은 경우, 값을 불러오는 경로가 달라지므로 옮길때만 그룹으로 묶고 실 사용전에는 풀어..

엑셀 VBA 기본기능 정리 - 특정 값이 배열에 포함되는지 확인하기

엑셀 VBA 기본기능 정리 - 특정 값이 배열에 포함되는지 확인하기 개요 문제의 복잡성 : 자바스크립트/C#은 각각 "ARRAY.include(A)" / "ARRAY.Exists(A)", Python에서는 "A in B"를 사용하나, C++/VBA에선 별도로 메서드가 존재하지 않아 후술될 방법을 사용해야 함 차선책 : 필터를 사용하면 간단하나, 상황에 따라 사용할 수 없는 경우에는 배열을 사용 방법 Dim c as Variant Dim rng as Range Dim arr() as Variant Set arr = {"A","B","C"} For Each c in rng For Each element In arr If element = c.Value Then IsInArray = True Exit Func..

한글에서 PDF로 인쇄했을때 사진/이미지가 깨져보일 때 해결방안

요약결론부터 이야기하자면, ①PDF인쇄를 위한 가상프린터의 압축기능을 제대로 세팅하지 않았거나 ②이미지의 자체의 해상도/DPI가 낮은것이 문제입니다. 해결방법 1 - PDF 설정에서 화질을 고화질로 높여준다.PDF 인쇄 프린터로 보통 한컴 PDF를 사용하는데, 한컴PDF는 자동압축기능이 존재합니다. 따라서, 인쇄 메뉴창에서 프린터 세팅으로 이동한 후 설정창에서 그림압축여부를 결정해줍니다. 인쇄용이라면 원본화질 사용으로 하면 가장 그림이 깔끔합니다. 대신 용량 제한이 있다면 이에 타협하여 적당한 용량이 나오도록 세팅을 바꿔주는 편이 좋겠습니다. 저장시 ⓐ인쇄-한컴PDF-저장용량설정-인쇄 방법을 통해 저장하시거나,            ⓑPDF저장 버튼을 누르고 저장설정을 해주어야 합니다.  전자의 설정 방법..

파워포인트에서 DPI올려서 저장하는 방법(그림 해상도 높이기)

여는 글인쇄작업을 하기 위한 그림은 해상도가 높아야 한다는 사실은 대부분의 경우 알고 있을거라고 봅니다.개인적으로 인쇄작업을 준비하던 도중, 한글파일을 인쇄하면 이상하리만치 그림이 깨져서 문제의 원인을 찾다가비로소 PPT가 문제의 원인임을 알게 되었는데요. 저는 이미지 작업에 가끔 파워포인트를 사용하는 편인데, 파워포인트는 본래 인쇄가 아닌 발표를 위한 프로그램이다보니 최적화에 올인해서인지 이미지 추출시 96~220 정도의 DPI만 제공하는것으로 보입니다. 특히, PPT에서 만든 그림들을 우클릭하여 그림으로 저장을 누르면 DPI가 150으로 확인됩니다. 심지어 프레젠테이션 문서 전체를 JPG/PNG 등의 이미지로 저장하면 기본 DPI가 96으로 되어있어서 매우 낮은 편입니다. PNG 파일의 경우 계산을 ..

엑셀 VBA 기본기능 정리 - 중복데이터 처리

중복데이터 처리 중복값 제거방법엔 여러가지가 있지만 개인적으로 콜렉션 기능은 잘 안쓰게 되다보니 대부분의 경우에는 RemoveDuplicates를 사용하게 되더군요. 모로가도 서울만 가면 되기 마련이니, 각자에게 가장 편한 방법을 찾으시면 될 것 같습니다만은, 일반적으로 프로그래밍에서 요구되는 중복값 제거 방법은 컬렉션 기능을 사용하는 부분이 가장 유사한것 같습니다. 중복값을 스스로 제거하지 못해서 에러발생을 막는 코드를 동원해야 비로소 고유값 추출이 가능한 한계는 있지만요, 아래 기재된 방법을 추후 잘 사용하진 않을것 같지만, 만일을 대비하여 정리해두려 합니다. 중복값 제거 방법의 종류 VBA 함수 중 RemoveDuplicate을 사용하거나, 고급필터의 중복값 제거 기능 활용 (여기서는 다루지 않음)..

엑셀 VBA 기본기능 정리 - VBA를 이용한 자동필터, 고급필터

자동필터와 고급필터 ※ VBA를 이용한 필터적용시 주의사항 : 자동필터를 새로 적용하기 전, 자동필터가 존재하는지 확인 후 필터를 풀어주어야 합니다. 그렇지 않은 경우, 자동필터 설정시 오류가 발생하거나 적용되지 않을 수 있습니다. VBA를 이용한 자동필터 기본형 기존 자동필터 존재 확인 : 시트개체.AutoFilterMode = True/False 자동필터 적용 : (범위 변수 rng에 대하여) rng.AutoFilter 모든 데이터 보이기(초기화) : (시트변수 sh에 대하여) sh.FilterMode, sh.ShowAllData 필터 적용 : rng.AutoFilter [열번호], Range(기준 데이터) 활용예시 Dim sh As Worksheet Dim rng As Range Set sh = S..

엑셀 VBA 기본기능 정리 - Cells/Range 관련 속성 및 메서드

Cells/Range 관련 속성 및 메서드 간단한 메서드 메모삽입 : AddComment(Text) 셀내용물 삭제 : ClearContents 셀 배경색상 수정 : interior.color = RGB(255, 255, 255) 셀 테두리 설정 : Borders 기본형 : Range.Borders(Index).LineStyle = xlNone 특징 Range개체의 테두리를 일일이 설정할 때 사용 Index에는 xlEdgeTop, xlEdgeBottom, xlEdgeLeft, xlEdgeRight와 xlDiagonalDown, xlDiagonalUp 그리고 xlInsideHorizontal, xlInsideVertical이 있음 하위 속성으로 LineStyle, Weight, Color가 있으며, 각각 I..

반응형