본문 바로가기
지난 게시글

[VBA] 엑셀 매크로 & VBA 기초(특정 셀 복사, 특정 값 넣기)

by yyDandy 2023. 2. 22.
반응형

안녕하세요. yyDandy 입니다.

 


1. 특정 셀 복사하기

이번에는 특정 셀 복사하기에 대해 알려드릴게요. 엑셀을 사용하다보면 데이터를 옮기고 바꾸고 덮어쓰고 하는 경우가 자주 생기게 된답니다. 이때 Ctrl + C, Ctrl + X 등의 기능을 활용할 수도 있어요. 그런데 다중 범위나 특정 부분에 적용하기 위해서는 여러번 손이 가야하는 불편한 점이 있어요. 예를 들어, 매번 B4, D4, Z6의 내용만 A1:A:3 으로 옮기고 싶다거나 할 때요 ! (물론 잘 없겠지만) 이럴 때는 매크로 기능을 활용할 수 있어요.

 

C4에서 C7까지의 셀에 있는 데이터를 E4에서 E7로 옮기는 방법을 알려드릴게요. 먼저 해야 하는 일은 해당 데이터를 선택하는거에요. [개발도구][VBA] - [삽입] - [모듈] 을 해주세요.

 

Sub 매크로1()
Range("C4:C7").Select
C4:C7을 선택
Selection.Copy
해당 부분을 복사
Range("E4").Select
E4를 선택
ActiveSheet.Paste
E4에 붙여넣기
End sub

 

순서대로 풀어서 설명해드리면 Range("C4:C7").Select는 C4:C7을 선택한다는 의미에요. Range(범위)에 해당 되는 부분을 Select 한다는 뜻이죠. Selection은 Select한 범위를 뜻해요. 앞서 Range로 선택한 부분이겠죠? 다음으로는 처음과 같이 E4를 선택하였고, ActiveSheet 현재 시트에 Paste 붙여넣는다는 뜻이랍니다.

 

 

그러면 이렇게 붙여넣기가 완료돼요. 이제 이를 응용해서 다른 범위로 설정하거나 위치를 달리하거나 If나 각종 함수를 통해서 특정 조건에 맞게 붙여넣을 수 있겠죠? 이런 부분도 차근차근 설명해드릴게요! 그리고 한 가지 C4:C7을 보면 점선으로 반짝이는 것을 볼 수 있어요. 이거는 복사모드라는 상태인데요. 다른 셀을 눌러서 Ctrl + V를 하게 되면 해당 내용을 다시 붙여넣을 수 있어요. 물론, ESC로 종료도 가능하답니다. 하지만 굳이 ESC를 한 번 더 누른다는 것은 귀찮은 작업이기 때문에 아래 내용을 코드에 넣어주세요.

Application.CutCopyMode = False

간단하게 설명해드리면 복사모드를 해제한다! 라는 뜻이 되겠네요. 그리고 아래는 전체코드 남겨드릴게요.

 

Sub 매크로1()
Range("C4:C7").Select
Selection.Copy
Range("E4").Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub

 

 

2. 특정 값 붙여넣기

다음으로는 특정 값 붙여넣기에 대해 알려드릴게요. 어떤 셀에 원하는 문구를 넣어야 하는 경우가 생길 때가 있죠? 예를 들면, 70점 이상이면 합격이라는 것을 넣고 싶어요. If(Cell1>=70,"합격",False) 로 표현을 해도 되지만 합격에서 끝나는 것이 아니고 프린터해서 성적표를 나오게 하고 싶고, 상황에 따라 다른 문구를 넣었으면 좋겠고 할 수도 있잖아요? 중첩 조건문으로 표현해도 되지만 우리는 더 간단하게 할 수 있어요!

 

 

G4의 영역에 yyDandy라는 문자를 넣고 싶어요. 그러면 앞서 배운 내용을 활용하여 Range("G4").Select를 하여 G4를 선택하면 되겠죠? 그 다음으로는 ActiveCell.FormulaR1C1 = "yyDandy"라고 쓰고 F5를 눌러보면 원하는 결과값이 나오게 돼요. 자 여기서 ActiveCell은 앞서 선택한 셀이 되겠고, FormulaR1C1은 상대참조의 개념인데 이건 뒤에서 한 번 소개해드릴게요. 이런게 있구나 하고 넘어가시면 돼요. 이렇게 특정값 붙여넣기에 대해 알려드렸는데요. 후에 나올 조건문이나 반복문 등과 활용하면 더 폭 넓게 할 수 있답니다. 오늘은 기초니까요!

 

Range("G4").Select
ActiveCell.FormulaR1C1 = "yyDandy"
반응형

 

반응형