티스토리 뷰

728x90
반응형

 

B열(타이틀인 B1셀 제외)에 내용을 기입하면 A열에 오늘 날짜와 요일이 자동으로 생성되는 VBA 코드

매일 여러 명의 상담 일지를 작성하다 보니 셀에서 날짜를 일일이 넣어주기가 귀찮았습니다.

물론 셀에서 [Ctrl + ; ]을 누르면 오늘 날짜가 기입되지만 요일까지 생성되진 않는 불편함이 있었습니다.

그래서 지정된 셀 영역에 날짜와 요일이 자동으로 생성되는 코드를 만들어 넣어봤습니다. 

결과물은 위 GIF 이미지와 같습니다.

그럼 VBA 코드를 알아보겠습니다.


제일 먼저 할 일은 시트명이 적힌 [Sheet1]에서 마우스 우클릭을 통해 [코드 보기]를 클릭해서 VBA 편집기로 들어가는 것입니다.

[Sheet1]에서 마우스 우클릭 후 [코드 보기] 선택

 

VBA 편집기 창에서 ①부분에서 Worksheet를 선택합니다.

그러면 Private Sub Worksheet_SelectionChange(ByVal Target As Range)가 생성되는데, 이는 선택 되는 셀이 바뀔 때마다 코드 내용을 실행한다는 의미이므로 우리가 사용하려는 목적과 맞지 않습니다.

따라서 ②부분에서 Change를 선택하여 Worksheet_Change가 나오게 합니다.

그리고 먼저 생성된 ③부분은 지워버립니다.

Private Sub Worksheet_Change(ByVal Target As Range)

그리고 아래와 같이 코드를 입력합니다.

B열(타이틀 B1열 제외) 부분에 내용을 기입하면 A열에 오늘 날짜가 자동으로 기입되는 VBA 코드

각 코드의 행별 설명은 주석으로 기입해 두었습니다.

 

Private Sub Worksheet_Change(ByVal Target As Range)
    
    If Target.Cells.Count > 1 Then Exit Sub
    '선택된 셀이 1개가 넘으면 이 코드에서 탈출하기
    
    If Not Intersect(Target, Range("b2", Range("b2").End(xlDown))) Is Nothing Then
    '선택된 셀이 B2를 포함한 그 하단 셀일 경우
         
         With Target(1, 0)                      'A열에
            .Value = Date                       '오늘 날짜를 기입
            .NumberFormat = "yyyy-mm-dd(aaa)"   '날짜 형식은 연-월-일(요일)
            .EntireColumn.AutoFit   '열의 크기를 자동 조정
        End With
    End If
End Sub

 

 

게으름을 편리함으로 바꿔주는 것이 매크로 같습니다. 

다시 공부해서 글 남기도록 하겠습니다.

오늘은 여기까지입니다.

 

 

728x90
반응형
댓글