VBA CODE 12

VBA 여러시트에 있는 데이터 가져오기(검색)

같은 파일 각 시트별 데이터 가져오기 Sub 데이터 가져오기() dim 시트 as worksheet dim 찾은셀 as range dim 기록셀 as range , i as integer row("7:100").delete shift:=xlup set 기록셀 =range("b7") for each 시트 in worksheets if 시트.name activesheet.name then set 찾은셀 =시트.columns(1).find(what: = range("b3")) if not 찾은셀 in nothing then 찾은셀. resize(,7).copy 기록셀.offset(i) i=i+1 end if end if next end sub

VBA CODE 2023.04.03

VBA 보안 하드드라이브 볼륨번호 확인하기

Sub GetHardDriveSerialNumber() Dim wmi As Object Set wmi = GetObject("winmgmts:\\.\root\cimv2") Dim disks As Object Set disks = wmi.ExecQuery("SELECT VolumeSerialNumber FROM Win32_LogicalDisk WHERE DeviceID='C:'") Dim serialNumber As String For Each disk In disks serialNumber = disk.VolumeSerialNumber Exit For Next MsgBox "하드 드라이브 볼륨넘버: " & serialNumber End Sub VBA에서 볼륨번호를 확인하는 방법이며, 사용자 지정 PC 이..

VBA CODE 2023.04.02

VBA 엑셀파일 PDF로 저장하기

Sub SaveAsPDF() ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "C:\Users\aa\Desktop\Example.pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False End Sub 다른방법으로는 팝업이 중간에 나와 지정하는 방법 Sub 프로시저() Dim 파일 As Variant Dim 파일형식 As String 파일형식 = "PDF 파일 (*.pdf), *.pdf" 파일 = Application.GetSaveAsFilename(FileFilter:=파일형식, _ Title:..

VBA CODE 2023.04.02

VBA 다른 워드파일(DOC) 엑셀로 불러오기

Sub OpenWordDocument() Dim objWord As New Word.Application Dim objDoc As Word.Document ' 파일 경로 및 파일 이름을 수정하여 열고자 하는 워드 파일의 경로와 파일 이름을 지정합니다. Set objDoc = objWord.Documents.Open("C:\이미지테스트\aaa.docx") ' 워드 파일을 표시합니다. objWord.Visible = True objDoc.Range.Copy ThisWorkbook.Sheets("Sheet1").Range("B2").PasteSpecial Selection.Verb Verb:=Object Range("b2").Select ActiveSheet.Paste ActiveSheet.Shapes.Ran..

VBA CODE 2023.04.02

VBA end(3)(2) end(xlup) end(3) end(1) end(2) end(4)

end 뒤에 숫자가 붙어서 나오는 경우가 있다. 처음 보는 사람은 당황 할 수 있는데, 숫자의 의미를 살펴 보자. 선택한 셀(가운데)을 기준으로 좌측은 End(1) 우측은 End(2) 위로는 End(3) 아래는 End(4) End(xlup)은 지난번에 다뤘듯이 마지막 행을 찾을때 사용했었다. 마찬가지로 End(3) 과 동일한 의미를 가진다. End(3) : 밑에서 위로 올라가면서 있는 셀위치 End(3)(2) : 밑에서 위로 올라가면서 만난 셀의 바로 아래셀 End(3)(3) : 밑에서 위로 올라가면서 만난 셀의 2칸 아래셀 End(1)(1, 3) : 왼쪽으로 이동하다가 만난 셀의 오른쪽 2칸 떨어진 위치의 셀 End(4) : 밑으로 내려가다가 처음 만난 셀위치 아래내용은 모두 같은 내용의 뜻이다. = ..

VBA CODE 2023.03.31

VBA 처리 속도 높이는 코드

Application.ScreenUpdating = False Application.DisplayStatusBar = False Application.EnableEvents = False ActiveSheet.DisplayPageBreaks = False Application.Calculation = xlManual Application.ScreenUpdating = False - 그때 그때 작업한것을 화면에 안뿌려줄거야(많은 데이터를 처리할 때 화면이 멈춰있는것 처럼보임. 그만큼 처리속도는 높아짐,화면 갱신안한다고보면됨) Application.DisplayStatusBar = False - 작업한 것을 상태표시줄에 안보임(엑셀 우측하단에 평균,합계등 그때그때 계산되어지는것이 눈에 안보임 Applicat..

VBA CODE 2023.03.31

VBA 셀병합 Merge 쇼핑몰 동일고객 셀 병합

Sub mergeCells() Dim i As Integer Dim rngStart As Range Dim rngEnd As Range '선택된 영역 중 첫째줄 지정 Set rngStart = Selection.Cells(2, 2) '선택된 영역 반복 For i = 2 To Selection.Rows.Count '두줄을 비교하여 같지 않을 경우 If Selection.Cells(i, 2) Selection.Cells(i + 1, 2) Then '같지 않을 경우 끝으로 지정 Set rngEnd = Selection.Cells(i, 2) '알람 창 Off Application.DisplayAlerts = False '셀 병합 실시 Range(rngStart, rngEnd).Merge '중앙 정렬 Range(..

VBA CODE 2023.03.31

VBA 범위 설정 셀 설정 Range Cells

AA = Range("A2:B5") - AA의 범위는 A2부터 B5까지 설정된다. 범위 설정시 Range 안에 쌍따옴표와 콜론 사용을 확인해야한다. AA = Range("A2") - AA 는 A2 셀 하나만 선택된것임 Range("A2","B5") 이렇게 써도 범위설정은 가능하다. 개체, 범위, 도형 설정시 변수선언 Dim 설정과 Set 설정에 유의하자! Range("A2") 일때 A열2번째 행이 선택된것 Range("A2:B5") -범위 Range("A2","B5") -범위 Range("A2") -셀 Range(Cells(2, 1), Cells(2, 3)) -범위 Cells를 이용할때는 Cells(행, 열) 로 사용한다. Cells(2,1)을 작성하면 2행, 1열을 나타내며, Range("a2")와 동..

VBA CODE 2023.03.31

VBA 빈행과 빈셀 A열 삭제하는 방법 코드

Option Explicit Sub empt_row_del() Dim i As Long Dim lastRow As Long Dim targetCol As String Dim mySheet As Worksheet Set mySheet = Sheets(1) 'mySheet를 첫 번째 시트로 설정, 다른 시트가 필요하다면 변경 With mySheet.UsedRange lastRow = .Row + .Rows.Count - 1 '마지막 셀 번호 End With targetCol = "A" 'A열에 있는 빈행만 검색하도록 설정 For i = lastRow To 1 Step -1 '첫 행부터 시작하면 빈 셀을 삭제할 경우 인덱스가 꼬이기 때문에 마지막 행에서 거꾸로 와야 한다. If mySheet.Cells(i, ..

VBA CODE 2023.03.31