분류 전체보기 99

엑셀 VBA 실제 사용 중인 영역의 경계 선택하기

S Y N O P S I S #VBA로 사용 중인 영역의 경계 선택하기 보통 사용 중인 영역을 Application.UsedRange로 설정하여 작업을 수행하게 되는데, 간혹 엑셀 시트를 만지다보면 데이터가 없는 영역인데도 불구하고 UsedRange가 선택하는 경우가 있다. 이 경우에는 셀 서식이 변경되었거나 변경 후 삭제를 했으나 저장을 하지 않은 경우 UsedRange로 인식할 수 있다. 이를 해결하기 위해 UsedRange가 아닌 실제 데이터 값만 들어 있는 UsingRange를 인식하도록 구현한 매크로이다. VBA Code Option Explicit Sub usingRng() Dim firstRow As Long Dim firstCol As Long Dim lastRow As Long Dim l..

VBA Macro/VBA Excel 2018.03.07

엑셀 VBA를 이용하여 포토샵 이미지 리사이즈 및 저장

매크로 설명 엑셀의 VBA 코드를 활용하여 포토샵 이미지를 리사이즈 하고 Export까지 수행하는 매크로이다. 인스타그램을 하다보니 최종편집 후 1080 사이즈의 이미지를 만드는 게 귀찮기도 하고, 포토샵의 액션 기능을 사용하는 경우 원본 Document의 사이즈에 따라 크기가 제멋대로 나와서 만들어 보았다. 가로 이미지와 세로 이미지를 인식하여 장축이 가로인 경우에는 가로가 1080이 되도록, 세로가 장축인 경우에는 세로가 1080이 되도록 리사이즈한다. VBA Code Option Explicit Sub resize_image() Dim appPhoto As Photoshop.Application Dim docPhoto As Photoshop.Document Dim imgSize As Double D..

엑셀 VBA로 포토샵 이미지 크기 변경

매크로 설명 포토샵은 Action Batch로 세세한 사항까지 자동화할 수 있지만, VBA를 보다 풍부하게 다루어보고 공부해보기 위해 카테고리를 따로 두어 만들어 보았다. 본 매크로는 포토샵에서 Document가 활성화되어 있는 경우에만 작동한다. VBA 편집기에서 도구 -> 참조 -> Adobe Photoshop [Version] Object Library를 추가해주어야 한다. 포토샵 개체모델 참조: 포토샵 스크립팅 가이드 https://www.adobe.com/devnet/photoshop/scripting.html VBA Code Option Explicit Sub photoshop_touching() Dim appPhoto As Photoshop.Application Dim docPhoto As ..

[엑셀] 지정한 셀 크기에 맞게 사진 삽입하기

매크로 설명 셀 또는 셀 범위를 선택하여 해당 셀 크기에 맞게 사진을 삽입하는 매크로이다. 선택된 셀이 범위인 경우 해당 셀을 병합한 뒤에 삽입한다. 매크로를 사용하는 방법은 아래 동영상 참고 매크로 실행 동영상 VBA Code Sub insert_image() Dim selRng As Range Dim rngTop As Double Dim rngLeft As Double Dim rngHeight As Double Dim rngWidth As Double On Error Resume Next Set selRng = Application.InputBox(prompt:="셀 또는 범위를 선택하세요.", Type:=8) '셀 선택 If Err.Number > 0 Then Exit Sub '선택하지 않은 경우 ..

VBA Macro/VBA Excel 2018.03.06

[엑셀VBA] 강제 줄바꿈 셀 분리하기

매크로 설명 워크시트 데이터 중에서 강제 줄바꿈(Alt + Enter)이 들어간 셀을 나누는 매크로이다. 코드의 요점은 강제 줄바꿈이 있는 셀을 찾아서 줄바꿈을 카운트하고 해당 카운트만큼 셀을 삽입하는 방식이다. 필요에 의해 가볍게 쓰려고 만든 코드이다. 곧바로 가져다 쓰기에는 무리가 있을 수 있다. (알맞은 변형이 필요하다.) 매크로 실행 동영상 VBA Code Sub forced_enter_separation() Dim k As Integer, cnt As Integer Dim varSize As Integer Dim myColumn As String Dim lastRow As Integer With ActiveSheet.UsedRange lastRow = .Row + .Rows.Count '마지막 ..

VBA Macro/VBA Excel 2018.03.05

[엑셀] 워크시트의 오류값 리턴(CVErr 함수)

S Y N O P S I S #워크시트의 오류값 리턴하기 VBA 내장 오류코드가 아닌 엑셀 시트의 오류(#N/A 같은)를 반환한다. 오류를 예외로 처리하여 엑셀의 내장함수와 연동하는 경우 유용하다. VBA Code Option Explicit Dim myTop As Long Sub sht_Err() 'CVErr(xlErrDiv0) #DIV/0! 오류 반환 'CVErr(xlErrNA) #N/A 오류 반환 'CVErr(xlErrName) #NAME? 오류 반환 'CVErr(xlErrNull) #NULL! 오류 반환 'CVErr(xlErrNum) #NUM! 오류 반환 'CVErr(xlErrRef) #REF! 오류 반환 'CVErr(xlErrValue) #VALUE! 오류 반환 End Sub 매크로 실행 동영상..

VBA Macro/VBA Excel 2018.03.05

[엑셀] 병합된 셀을 풀고 같은 내용으로 채우기

매크로 설명 병합된 셀을 풀어야 할 때가 있는데, 이 경우 첫 셀만 값이 남으므로 기분이 나쁘다. 아래 매크로는 병합을 푼 셀의 나머지 셀에도 동일한 내용을 집어넣는 매크로이다. 빈 셀이 있다면 문제가 있을 수 있다. 백업시트를 만들어둔 이후에 실행하길 추천한다. 매크로 사용이 번거롭고 귀찮다면 추가기능을 활용할 수 있다. 추가기능 링크(클릭) 매크로 실행 동영상 VBA Code Option Explicit Sub unMergeCells() Dim i As Long Dim myCol As Long Dim lastRow As Long With ActiveSheet.UsedRange lastRow = .Row + .Rows.Count - 1 End With For myCol = 1 To 3 '1~3열까지만 ..

VBA Macro/VBA Excel 2018.01.24

[을왕리 해수욕장] 은성네 원주민 조개구이

S Y N O P S I S #가격 적당함 #배터지게 먹음 #맛있음 #주차 핵편함 #분위기 좋음 # 은성네 원주민 조개구이(을왕리) 을왕리 해수욕장에 위치한 조개구이 집이다. # 커플세트가 3개가 있는데 그 중 가리비 세트로 했다. # 90,000 원 생각보다 비싸다. # 조개구이인지 치즈구이인지.# 조개구이가 먹고싶어서 왔지만, 사실 라면을 제일 좋아한다. # 조개는 더 달라고 하면 더 준다.# 물론, 조개구이 먹으면서 단 한 번도 더 시킨 적이 없을 정도로 많다.# 다 먹고싶으면 큰놈 보단 작은놈을 먹고 큰놈은 그냥 버리는게 차라리 낫다.# 전복은 살짝만 데워서 먹으면 된다. 너무 익히면 금방 탄다. # 굴이 하이라이트인데 너무 배불러서 다 못먹었다.# 은박지째로 불판에 올려놓고 김이 올라올 때쯤 여..

맛집 2018.01.22

그릭슈바인 양재점

S Y N O P S I S #가격 적당함 #배터지게 먹음 #맛은 쏘쏘 #주차 편함 #분위기 좋음 # 그릭슈바인 양재점 양재역에 딱 붙어있는 독일식 레스토랑이다. # 학센, 비주얼은 깡패다. # 살이 좀 질기다. 정말 우리나라 족발같은 식감을 예상했다면 실망할 수 있다. # 약간 느끼하고, 입에 물린다. 둘이서 먹기엔 좋지 않은 듯 # 치즈그라탕도 시켰는데, 이것도 좀 요상하다. # 처음에 아~ 독일식 식당이라 그런가비다 했는데, 하여간 요상하다. 기대했던 맛이 안 난다. # 음식이 포인트가 없다. 맛이 아주 없는 건 아닌데, 맛이 있는 것도 아니다.

맛집 2018.01.17

[엑셀] VBA로 스택 구현

S Y N O P S I S #VBA로 스택 구현하기 VBA로 구현한 스택이다. 별 건 없다. 필요할 때 가져다 쓰려고 만들어봤다. VBA Code Option Explicit Option Base 0 Const MAXI = 5 'stack 크기 설정 Dim myTop As Long Sub myStack() Dim myArr() As Variant myTop = -1 ReDim Preserve myArr(MAXI) 'stack 크기만큼 배열 초기화 Call push(myArr, "아이템 1") Call push(myArr, "아이템 2") Call pop(myArr) Call pop(myArr) End Sub Function push(ByRef fn_arr() As Variant, ByVal fn_ite..

VBA Macro/VBA Excel 2018.01.14