반응형

안녕하세요 :)

 

https://kim0404.tistory.com/35

 

엑셀 사용법 : VBA-기초(3) 바코드 등록하는 엑셀 만들기-3

안녕하세요 :) VBA 기초 세번째 글이네요 😊 아래 글에서 이어지는 내용이니 참고해주세요 :D https://kim0404.tistory.com/34 엑셀 사용법 : VBA-기초(2) 바코드 등록하는 엑셀 만들기-2 안녕하세요 :) 이전

kim0404.tistory.com

 

VBA-기초(3)에서 이어지는 글입니다 :)

 

 

저 엑셀을 만들다가 생각이 난게 지금껏 만들었던 엑셀은 바코드를 찍고-확인-찍고-확인-찍고-확인...

을 해야한다는 아주 큰 불편함이 생길것 같더라구요 :)

 

그래서 어떻게 할까 생각하다가 Form을 이용해서 찍으면 바로바로 이력에 쌓일 수 있도록 수정했습니다 :)

 

 

위와 같이 간단하게 TextBox의 Change 이벤트를 이용해서 찍자마자 바로 이력 시트에 입력될 수 있도록 만들었어요 :)

 

 

■ TextBox Change 이벤트 코드

Private Sub TextBox1_Change()

    '입력폼 텍스트
    Dim TarTxt
    TarTxt = TextBox1.Value
    
    '바코드길이(F3)
    Dim TarTxtLen
    TarTxtLen = Len(TarTxt)    
    
    '오토체크YN
    Dim AutoChkYn As String
    AutoChkYn = getShData("매크로", 3, "E")
    
    '바코드길이(공통)
    Dim BarCodeLen As Integer
    BarCodeLen = getShData("매크로", 3, "F")
    
    
    '오토체크 Y AND (입력값 = 바코드 길이 or 바코드 길이 0 일때)
    If AutoChkYn = "Y" And (TarTxtLen = BarCodeLen Or BarCodeLen = 0) Then
    
        
        '바코드셀에 입력하고 Run 이벤트
        Call setShData("매크로", 7, "C", TarTxt)
        Call Run_Event
        
        TextBox1.Value = ""    
    
    End If    

End Sub




Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    'MsgBox KeyCode    
    
    'KeyCode 13 = "엔터"
    '엔터 누를때 Run 이벤트 실행
    If KeyCode = 13 Then    
    
        '입력폼 텍스트
        Dim TarTxt
        TarTxt = TextBox1.Value        
    
        '바코드셀에 입력하고 Run 이벤트
        Call setShData("매크로", 7, "C", TarTxt)
        Call Run_Event
        
        TextBox1.Value = ""
    
    End If
End Sub

 

코드를 보게되면 change 이벤트와 keyUp 이벤트가 있는걸 볼수 있습니다 :)

주석을 달아놔서 쉽게 보실 수 있으실꺼에요 :)

 

change 이벤트는 TextBox에 타이핑할때마다 change 이벤트를 타게됩니다.

그래서 오토체크와 바코드 길이가 있는데 

 

오토체크 Y일때 바코드 길이셀과 입력한 바코드의 길이가 같다면 자동으로 확인되어 이력에 쌓일 수 있도록 했습니다.

 

* 오토체크 = Y        바코드길이셀  = 6

12345 <<< 까지 TextBox에 입력되다가 123456 << 6을 입력하게 되면 이력에 쌓이는거죠 ㅎㅎ

 

이건 수기로 입력할때 사용하는 거고 바코드를 찍게되면 길이를 모르니까

바코드 길이를 0으로 놓으면 어떤 값이든 길이에 상관없이 이력에 기록되도록 설정했습니다 :)

 

 If AutoChkYn = "Y" And (TarTxtLen = BarCodeLen Or BarCodeLen = 0) Then ....  

 

그리고 이 조건에 만족한다면

바코드 셀에 TextBox 값을 입력하고

Call Run_Event를 하게 되는거죠 ㅎㅎ

 

KeyUp 이벤트의 경우 혹여나 수기로 입력할 때, 바코드 길이가 다를때 엔터버튼으로 기록할 수 있도록 했습니다 :)

 

Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    'MsgBox KeyCode    
    
    'KeyCode 13 = "엔터"
    '엔터 누를때 Run 이벤트 실행
    If KeyCode = 13 Then

 

MsgBox를 통해 KeyCode를 찍어보게 되면 키보드를 입력할 때마다 숫자가 바뀌는것을 알 수 있는데요.

그 숫자가 키보드와 매핑되어있는 숫자입니다 :)

 

엔터를 눌러보게 되면 13의 숫자가 나오는데, 엔터를 누를때 Run_Event를 실행 시키는 코드입니다 :)

 

아래 제가 만들었던 엑셀파일을 첨부해 놓을테니 뜯어보세요 ㅎㅎ

 

이상 VBA 기초 바코드 등록하는 엑셀만들기 였습니다 :)

 

다음에는 다른 작업물로 돌아올께요 

 

 

 

 

매크로_사용문서_v2.xlsm
0.06MB

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

안녕하세요 :)

VBA 기초 세번째 글이네요 😊

 

아래 글에서 이어지는 내용이니 참고해주세요 :D

 

https://kim0404.tistory.com/34

 

엑셀 사용법 : VBA-기초(2) 바코드 등록하는 엑셀 만들기-2

안녕하세요 :) 이전 글 엑셀 사용법 : VBA-기초(1) 바코드 등록하는 엑셀 만들기-1에서 이어지는 글입니다 :D 아래는 제가 작성한 코드입니다 ㅎㅎ.. 이글을 보는 코딩 고수님들은 뒤로가기를 눌러

kim0404.tistory.com

 

 

 

이번 글에서 분석해 볼 코드는

bacoHisNum = setBacodeNum() '바코드 이력 순번
                
Call setShData("매크로", 3, 1, bacoHisNum)      
Call setShBacoHis(bacoHisNum, bacode) '바코드 히스토리 입력    
Call setDropDownHis(bacode) '하단 바코드 이력    

Call setShData("매크로", 3, 3, "") '오류 초기화

 

입니다. 

 

위에서부터 

    1. 바코드 이력 순번 + 1

    2. 바코드 이력 순번 A3셀에 입력.

    3. 바코드 이력 시트에 데이터 입력.

    4. 매크로 시트 최근이력 데이터 입력.

    5. 오류 Message 셀 초기화.

 

순으로 코딩해봤습니다.

 

 

■  1. 바코드 이력 순번 + 1

'바코드 시트에 순번 입력 및 가져오기
Function setBacodeNum()
    Dim Num
    
    'Num = getShData("바코드 이력", 1, 1)
    'Num = Num + 1
    
    'Worksheets("바코드 이력").Cells(1, 1) = Num
    
    
    
    Num = getShData("매크로", 3, 1)
    Num = Num + 1
    
    Worksheets("매크로").Cells(3, 1) = Num
    
    setBacodeNum = Num
End Function

바코드 이력 순번셀을 만든 이유는 바코드 이력 시트에 행을 추가할때 행의 번호를 쉽게 파악할 수 있도록 하기 위함입니다.

 

뭐 마지막 행을 찾아 그 다음 행에 데이터가 입력되도록 코드를 짜도 되는데 찾기 귀찮아서 이렇게 만들었어요 ㅎㅎ

 

`로 표시된건 주석이니 신경쓰지 않아도 됩니다 ㅎㅎ

 

Num 이라는 변수를 하나 만들어서

getShData("매크로", 3, 1) 아래 그림에 A3에 해당하는 값을 불러와 1 증가 후 증가된 값을 반환하는 함수입니다 :)

위 그림처럼 되어있으면 A3셀에 해당하는 3값을 불러와 +1 된값인 4를 반환하게 되는거죠 ㅎㅎ

 

2. 바코드 이력 순번 A3셀에 입력

Call setShData("매크로", 3, 1, bacoHisNum)

반환된 값을 bacoHisNum 변수에 넣어놓고 위 그림 A3셀에 증가된 숫자를 입력해줍니다.

이전글에서 설명했던 setShData() 함수를 사용해서 간단하게 셀값을 입력할 수 있죠 ㅎㅎ

 

 

3. 바코드 이력 시트에 데이터 입력.

'바코드 이력 남기기
Function setShBacoHis(shNum, bacode)

    Dim shNm
    
    shNm = "바코드 이력"

    Call setShData(shNm, shNum, "B", "N") '삭제여부
    Call setShData(shNm, shNum, "C", shNum - 2) '순번
    Call setShData(shNm, shNum, "D", bacode) '바코드
    'Call setShData(shNm, shNum, "E", bacode) '상품명은 vloopup으로 처리
    Call setShData(shNm, shNum, "F", Now) '바코드
    
    'Application.Goto reference:=[A&shNum], Scroll:=True
    
    'Application.Goto reference:=Worksheets("바코드 이력).Range("G10"), Scroll:=True
    
    
    Application.Goto Reference:=Worksheets(shNm).Range("A" & shNum), Scroll:=False
    
End Function

 

이제 이력일 쌓는 함수를 보겠습니다.

setShBacoHis( shNum(바코드 순번), bacode(바코드 )  )를 매개변수로 받고있습니다 :)

바코드 순번에 해당하는 행에 바코드값을 넣어주는 함수입니다

 

코드를 보면 shNm 변수에 이력을 쌓을 "바코드 이력" 시트를 변수에 담았습니다. 

 

그 밑에는 Call setShData 로 "바코드 이력" 시트에 shNum에 해당하는 행의 B,C,D,F 열에 각각 데이터값을 입력하게끔 되어있습니다 :)

 

상품명은 나중에 VLOOKUP 함수로 처리하려고 비워두었습니다 ㅎㅎ

더 필요한 정보가 있다면 setShData 를 이용하여 추가로 코딩하면 될것같네요

저는 이 외 필요한 데이터가 없어 간단하게 작성했습니다 :)

 

마지막행은 Form을 추가하면서 추가된 코드입니다.

나중에 설명드릴께요 ^^

 

 

 

■ 4. 매크로 시트 최근이력 데이터 입력.

' 하단 바코드 이력 쌓기
Function setDropDownHis(bacode)

    Dim shNm, bcData1, bcData2, bcData3, bcData4, bcData5
    shNm = "매크로"

    bcData1 = bacode
    bcData2 = getShData(shNm, 8, "C")
    bcData3 = getShData(shNm, 9, "C")
    bcData4 = getShData(shNm, 10, "C")
    bcData5 = getShData(shNm, 11, "C")

    Call setShData(shNm, 8, "C", bcData1) '1행
    Call setShData(shNm, 9, "C", bcData2) '2행
    Call setShData(shNm, 10, "C", bcData3) '3행
    Call setShData(shNm, 11, "C", bcData4) '4행
    Call setShData(shNm, 12, "C", bcData5) '5행
    
    
    Call setShData(shNm, 7, "C", "") '바코드 값 초기화

End Function

 

바코드 최근 이력 데이터를 입력하는 함수입니다.

바코드를 최근에 무얼 찍었는지 직관적으로 알 수 있수 있을것 같아 만들어 보았습니다 ㅎㅎ

반복문(for문)을 사용하면 더 깔끔한 코드가 되겠지만 귀찮고 5행밖에 되지않아 그냥 하드코딩했습니다 :)

C열의 8, 9, 10, 11 행을 변수에 담고 입력한 바코드도 1번 변수에 담습니다.

그리고 차례대로 한칸씩 내려오도록 구성되어있습니다 :)

 

마지막엔 입력한 바코드는 클리어 시켜주면서 입력한 바코드를 직접 삭제하지 않고 편하게 다시 입력할 수 있도록 했습니다 :)

 

5. 오류 Message 셀 초기화.

 

Call setShData("매크로", 3, 3, "") '오류 초기화

 

오류 메세지를 공백으로 초기화 하는 코드입니다.

 

Run_Event 함수에서 IF 문을 실행하는데 바코드셀에 값이 없으면 "바코드란 값 없음"을 오류 Message 셀 밑에 입력되는데 이를 공백으로 만들어 주는 함수입니다 :)

 

아래는 Run_Event 에서 바코드값이 없을때 else로 빠지는 구문입니다.


    If bacode <> "" Then
    
    	...
    
    Else
        
        '이벤트 중지 코드
        Application.ScreenUpdating = False
        Application.EnableEvents = False
    
        Call setShData("매크로", 3, 3, "바코드란 값 없음") '오류
    
        '이벤트 실행 코드
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        
    
    End If

 

이벤트 중지 코드는 Form을 추가하면서 추가된 코드라 다음글에서 설명드릴수 있을것 같네요 :)

 

이 글을 여기까지이며 중구난방으로 작성해서 이해가 될지 모르겠네요 ㅎㅎ

 

다음 글이 바코드 엑셀 마지막 글이 될것 같습니다 :)

 

여기까지 읽어주셔서 감사합니다.

 

다음글에서 뵙겠습니다 

 

 

반응형
반응형
반응형

안녕하세요 :)

이전 글 엑셀 사용법 : VBA-기초(1) 바코드 등록하는 엑셀 만들기-1에서 이어지는 글입니다 :D

 

 

아래는 제가 작성한 코드입니다 ㅎㅎ..

이글을 보는 코딩 고수님들은 뒤로가기를 눌러주세요 ㅜㅜ..

허접하지만 설명하겠습니다 ...

 


■ 코드

Sub 단추1_Click()

    '셀 클릭 잠시 막아 놓음.
    Call Run_Event

End Sub



' 실행 함수
Sub Run_Event()

    Dim dumy

    Dim bacode As String '바코드 변수
    Dim bacoHisNum As Integer '바코드 순번 변수

    
    bacode = getShData("매크로", 7, "C")
    
    
    If bacode <> "" Then
    
        
        bacoHisNum = setBacodeNum() '바코드 이력 순번
        
        
        Call setShData("매크로", 3, 1, bacoHisNum) '삭제
        
        Call setShBacoHis(bacoHisNum, bacode) '바코드 히스토리 입력
    
        Call setDropDownHis(bacode) '하단 바코드 이력
    
    
        Call setShData("매크로", 3, 3, "") '오류 초기화
    
    Else
        
        '이벤트 중지 코드
        Application.ScreenUpdating = False
        Application.EnableEvents = False
    
        Call setShData("매크로", 3, 3, "바코드란 값 없음") '오류
    
    
        '이벤트 실행 코드
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        
    
    End If


End Sub


'******************************사용자 정의함수 Start *******************************

'바코드 시트에 순번 입력 및 가져오기
Function setBacodeNum()
    Dim Num
    
    'Num = getShData("바코드 이력", 1, 1)
    'Num = Num + 1
    
    'Worksheets("바코드 이력").Cells(1, 1) = Num
    
    
    
    Num = getShData("매크로", 3, 1)
    Num = Num + 1
    
    Worksheets("매크로").Cells(3, 1) = Num
    
    setBacodeNum = Num
End Function


'바코드 이력 남기기
Function setShBacoHis(shNum, bacode)

    Dim shNm
    
    shNm = "바코드 이력"


    Call setShData(shNm, shNum, "B", "N") '삭제여부
    Call setShData(shNm, shNum, "C", shNum - 2) '순번
    Call setShData(shNm, shNum, "D", bacode) '바코드
    'Call setShData(shNm, shNum, "E", bacode) '상품명은 vloopup으로 처리
    Call setShData(shNm, shNum, "F", Now) '바코드
    
    'Application.Goto reference:=[A&shNum], Scroll:=True
    
    'Application.Goto reference:=Worksheets("바코드 이력).Range("G10"), Scroll:=True
    
    
        Application.Goto Reference:=Worksheets(shNm).Range("A" & shNum), Scroll:=False
    
End Function


' 하단 바코드 이력 쌓기
Function setDropDownHis(bacode)

    Dim shNm, bcData1, bcData2, bcData3, bcData4, bcData5
    shNm = "매크로"

    bcData1 = bacode
    bcData2 = getShData(shNm, 8, "C")
    bcData3 = getShData(shNm, 9, "C")
    bcData4 = getShData(shNm, 10, "C")
    bcData5 = getShData(shNm, 11, "C")

    Call setShData(shNm, 8, "C", bcData1) '1행
    Call setShData(shNm, 9, "C", bcData2) '2행
    Call setShData(shNm, 10, "C", bcData3) '3행
    Call setShData(shNm, 11, "C", bcData4) '4행
    Call setShData(shNm, 12, "C", bcData5) '5행
    
    
    Call setShData(shNm, 7, "C", "") '바코드 값 초기화

End Function


'******************************사용자 정의함수 End *******************************

'-------------------------공통 함수 Start ---------------------------------------

'시트명, 행, 열 값 가져오기
Function getShData(sheetName, Row, Col)

    Dim shData

    shData = Worksheets(sheetName).Cells(Row, Col).Value
    
    getShData = shData
End Function


'시트명, 행, 열 입력값
Sub setShData(bacoShNm, Row, Col, shData)

    Worksheets(bacoShNm).Cells(Row, Col) = shData

End Sub

 

 

 

 

하나하나 뜯어볼께요 :)

먼저 공통함수 부터 보겠습니다.

 

 

■ 공통함수

'-------------------------공통 함수 Start ---------------------------------------

'시트명, 행, 열 값 가져오기
Function getShData(sheetName, Row, Col)

    Dim shData

    shData = Worksheets(sheetName).Cells(Row, Col).Value
    
    getShData = shData
End Function


'시트명, 행, 열 입력값
Sub setShData(bacoShNm, Row, Col, shData)

    Worksheets(bacoShNm).Cells(Row, Col) = shData

End Sub

 

공통함수를 왜 만드는 이유는 그냥 제가 편하게 사용하기 위해서 만들었습니다 ㅎㅎ

setShData() 함수는 한줄로 구성되어 있지만

getShData() 함수는 세줄로 되어있어서 간단하게 사용하려고 만들었습니다.

그리고 매번 길다란 문구를 입력할 필요도 없어서 이런식으로 만들면 좋아요

 

대강 코드에 대해 설명하면

setShData()는 매개변수 bacdShNm, Row, Col, shData를 받는다고 나와있습니다.

setShData("매크로", 1, 1, "A1 데이터 입력")로 간단하게 매크로시트 1행, 1열에 "A1 데이터 입력" 이라는 값을 넣을 수 있습니다.

 

getShData()는 매개변수 bacdShNm, Row, Col를 받는데요

이는 getShData("매크로", 1, 1)로 간단하게 위에서 set 했던 "A1 데이터 입력" 값을 가져올 수 있습니다.

 

 

■ 단추1_Click()

Sub 단추1_Click()

    '셀 클릭 잠시 막아 놓음.
    Call Run_Event

End Sub

 

단추1_Click() 함수는 확인 버튼을 누를때 실행됩니다.

아래 Call Run_Event 를 호출하는걸 볼 수 있습니다.

함수를 찢어놓는건 재활용하기 좋기 때문입니다. ㅎㅎ

 

 

 

■ Run_Event()

' 실행 함수
Sub Run_Event()

    Dim dumy

    Dim bacode As String '바코드 변수
    Dim bacoHisNum As Integer '바코드 순번 변수

    
    bacode = getShData("매크로", 7, "C")
    
    
    If bacode <> "" Then
    
        
        bacoHisNum = setBacodeNum() '바코드 이력 순번
        
        
        Call setShData("매크로", 3, 1, bacoHisNum) '삭제
        
        Call setShBacoHis(bacoHisNum, bacode) '바코드 히스토리 입력
    
        Call setDropDownHis(bacode) '하단 바코드 이력
    
    
        Call setShData("매크로", 3, 3, "") '오류 초기화
    
    Else
        
        '이벤트 중지 코드
        Application.ScreenUpdating = False
        Application.EnableEvents = False
    
        Call setShData("매크로", 3, 3, "바코드란 값 없음") '오류
    
    
        '이벤트 실행 코드
        Application.ScreenUpdating = True
        Application.EnableEvents = True
        
    
    End If


End Sub

 

 

핵심이 되는 함수죠.

 

매크로 시트의 C7 데이터를 읽어와 바코드 이력 시트에 입력하는 코드입니다.

 

C7의 값이 존재할때 ( 바코드값 <> "")

 

    1. 바코드 이력 순번 + 1

    2. 바코드 이력 순번 A3셀에 입력.

    3. 바코드 이력 시트에 데이터 입력.

    4. 매크로 시트 최근이력 데이터 입력.

    5. 오류 Message 셀 초기화.

 

순으로 되어있습니다.

메인이 되는 함수는 간결하게 작성하는게 유지보수에 좋은것 같아요ㅎㅎ

흐름을 먼저 파악해야 어디서 부터 어떻게 무엇이 잘못되었거나 내가 수정하고 싶은 기능이 어디에 있는지 빠르게  파악하기 쉬운것 같습니다.

 

오늘은 여기까지 하고 다음글에 1~5까지의 함수를 분석해보도록 할께요 :)

 

감사합니다.

반응형
반응형

안녕하세요 :)

오랜만에 글을 올리는것 같습니다.

오늘 설명드릴 엑셀파일은 바코드 등록하는 엑셀파일입니다 :)

아는 지인분께서 바코드를 사용하여 재고조사를 하고 싶은데 엑셀을 다룰지 몰라서 저에게 부탁하셨습니다.

저역시 많이 아는것은 없지만 최대한 도움이 되고자 엑셀을 짜봤는데요.

하지만 결국에는 해당 브랜드에서 제공하는 재고조사 툴을 사용하여 제가 만든 엑셀파일은 켜보지도 못하였네요..

 

기초적인 VBA이가 작성되어 있어 교육적인 문서로 충분하다고 생각하여 공유합니다 :)

 

총 3개의 페이지로 구성되어 있습니다.

1. 매크로 시트

2. 바코드 이력 시트

3. 통계시트

 

1. 매크로시트 부터 확인해보겠습니다 :)

매크로 시트에는 다양한 작업준비코드가 존재합니다.

현순번 : 바코드이력의 행 순번

오류 Message : 오류메세지 출력 셀

자동확인 : 바코드길이에따라 자동으로 확인하는 플래그

바코드길이(1이상) : 입력된 바코드길이 도달시 자동으로 확인기능수행 (자동확인 Y 일경우)

바코드길이(0) : 바코드길이에 상관없이 무조건 확인기능수행

확인버튼 : 바코드셀에 입력된 값을 바코드 이력시트 및 하단 이력에 바코드 입력

입력폼 : 바코드 입력폼창 호출

 

화면에 있는 각각의 기능들을 설명드렸습니다 :)

 

바코드에 숫자입력 후 확인버튼을 누르게 되면 아래에 1~5번까지 이력을 볼 수 있도록 만들었습니다 .

 

 

입력해던 바코드 12345가 아래에 표시된것을 알 수 있습니다.

하지만 아래 5줄은 최신 이력들을 나타낸 것들이고 더 많은 이력들은 바코드 이력 시트에 쌓이게 됩니다.

 

 

 

 

 

바코드 이력 시트에 보면 매크로시트에서 입력한 12345가 입력딘 것을 알 수 있습니다.

 

이런식으로 바코드를 입력하면 바코드 이력시트에 데이터가 쌓여서 쌓인 데이터로 SUMIF, COUNTIF, VLOOKUP 등을 이용해 통계시트에서 활용하려고 했었습니다 :)

 

하지만 셀 입력하는게 제가 생각한 바코드입력기랑 너무 달라서 바로바로 할 수 있는 기능을 추가했습니다.

 

 

 

폼을 이용하여 확인버튼을 누르지 않아도 바로바로 바코드 이력에 데이터가 쌓일 수 있도록 하였습니다 :)

 

첫번째 글에서는 제가 만들었던 엑셀의 구성에 대해 알아보았고

 

다음글에서는 소스를 하나하나 뜯어보는 글로 다시 찾아뵙겠습니다.

 

긴글 읽어주셔서 감사드립니다.

 

 

 

반응형
반응형

안녕하세요.

오늘은 틀고정에 대해서 알아보도록 합시다.

틀고정이란 엑셀의 최상단 행 또는 좌측 열고정시켜 엑셀 작업을 할때 타이틀 및 카테고리를 고정시켜 작업을 좀 더 효율적으로 할 수 있습니다.

 

틀고정 위치

[보기탭]으로 들어가면 틀고정이 있습니다.

틀 고정 옵션은 틀 고정, 첫 행 고정, 첫 열 고정이 있습니다.

첫 행 고정과 첫 열 고정은 사용자 편의성을 위해 최 상단, 최 좌측을 클릭한번으로 사용할 수 있도록 설정된 옵션입니다.

 

첫 행 고정 부터 클릭해보도록 합시다.

첫행 고정을 클릭하게 되면 첫 행에 검정선이 생기는것을 확인할 수 있습니다.

검정색 선이 셀 밖으로 삐져나오면 틀 고정이 제대로 설정 되었다는 것을 알 수 있습니다.

 

여기서 스크롤를 내려봅시다.

스크롤을 내리게 되면 첫 행은 고정는 것을 알 수 있습니다.

왼쪽 행번호를 보면 1행 다음 5행이 나타나는것을 확인할 수 있습니다.

 

이제 첫 열 고정을 해봅시다.

첫 열고정을 클릭하게되면 A열쪽에 실선이 생기는것을 확인할 수 있습니다.

첫 행고정과 마찬가지로 오른쪽으로 횡스크롤을 해봅시다.

 

오른쪽으로 횡스크롤을 하게 되면 A열이 고정되어 있는것이 확인됩니다.

A열 다음 B열을 건너뛰고 C열이 보이는것을 알 수 있습니다.

 

이처럼 데이터가 많아질 경우 어느순간 타이틀이나 카테고리가 안보이는 순간이 찾아오게 되는데요.

이럴때 틀고정을 이용하여 상황에 맞게 사용하시면 됩니다.

 

위에 설명은 첫행과 첫열에 대한 고정에 대해 설명했는데요.

그러면 열과 행을 동시에 고정시키거나, 두번째, 세번째행이나 열을 고정시키고자 할땐 틀 고정을 사용하면 됩니다.

 

셀 포인터를 C3(C열과 3열)에 두고 틀 고정 버튼을 눌러봅시다.

셀포인터 C3

 

 

C3에 셀포인터를 두고 틀고정을 클릭하면 행,열고정이 되는 검정선이 가로세로로 그어지게 됩니다.

이렇게 되면 두번째 열과 행에 대한 틀 고정이 설정되게 됩니다.

 

 

※ 알잘딱깔센하게 틀 고정 사용해보기

알잘딱이란 알아서 잘 딱 깔끔하고 센스있게 라는 뜻입니다. ㅎㅎ

그냥 혹시나 이글을 보는 연령대가 어떻게 되는지 모르기 때문에 설명해봤습니다. 신조어 하나 배워가세요

 

근대 틀고정이라는게 딱히 어떤 기술이나 센스가 필요한게 아니기 때문에

간단하게 데이터가 많아져 수직스크롤을 많이 내려야한다 할때는 행 고정

입력할 항목들이 많아져 횡스크롤을 많이 하게 된다면 열 고정을 하면 되겠습니다.

 

이상으로 틀고정에 대해 알아보았습니다.

 

감사합니다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형

안녕하세요.오늘은 엑셀기능인 매크로에 대해 알아보도록 합시다.

 

매크로는 반복작업이 있을때 효율적으로 사용할 수 있습니다.

 

그럼 알아보도록 합시다.

 

 

매크로 위치는 보기탭 - 맨 우측 매크로에 있습니다.

매크로를 클릭하여 기록을 해봅시다.

 

 

매크로 설정

매크로 기록을 누르게되면 옵션창이 나타납니다.

 

· 매크로이름

· 바로가기키

· 매크로저장위치

· 설명

 

으로 구분되어 있는걸 확인할 수 있습니다.

매크로 이름은 한눈에 확인 가능하도록 명시적으로 짓는게 좋습니다.

그리고 설명란에 어떤매크로인지, 언제사용할껀지, 어떻게 사용하는건지를 상세하게 적어 놓으면 구분하기 좀더 편리하겠죠?

 

바로가기키는 소문자와 대문자로 설정 가능합니다.

저는 보통 대문자로 많이 사용하는데요, 그 이유는 Ctrl키에 묶여있는 window 단축키가 많기때문에 혼동되지 않게 하기 위해서입니다. 

 

매크로 기록을 위해 확인을 눌러봅시다.

 

매크로 중지

기록을 누르게되면 매크로 중지버튼이 나오게됩니다.

매크로탭에서 중지하거나, 좌측 하단에 중지 아이콘을 클릭하여 중지하면 됩니다.

 

매크로 기록을 시작하면 내가 설정한 것들이 순차적으로 모두 기록되기 때문에 천천히 기록하셔야 합니다.

 

이제 홈으로 가서 배경색을 바꿔봅니다.

 

그리고 홈탭으로 들어가서 셀 배경색을 변경해준뒤 매크로 중지버튼을 눌러 매크로를 중지시킵니다.

 

그리고 아래 셀에 매크로를 적용시켜봅시다.

 

방금 만들었던 매크로를 실행버튼을 클릭하거나 이전에 등록했던 단축키를 사용하여 적용시켜봅니다.

 

만약 이전에 단축키를 등록 못했다면 옵션버튼을 클릭하여 다시 등록해줍니다.

 

매크로가 실행되면 선택한 셀의 배경색이 바뀌는걸 보실수 있습니다.

 

매크로 편집버튼을 클릭해봅시다.

매크로 편집

매크로 편집버튼을 누르면 위 이미지와 같이 매크로에 대한 VBA 코드가 나오게됩니다.

코딩을 통해 좀더 디테일한 매크로를 사용하실수 있습니다.

 

차후에 VBA에 대한 글도 올려보도록 하겠습니다.

 

※ 매크로 사용전 반복패턴 생각하기

지금은 간단한 배경색만 바꾸는 매크로였지만, 어떤 특정한 셀에는 글꼴, 글자크기, 글자색 등 바꿔줘야하는 상황이 생기기 마련입니다. 이런 반복작업이 생길때면 어떤 상황에서 어떤 매크로를 사용해야 효율적인지 판단하는게 가장 중요합니다.

 

위의 예시처럼 간단하게 배경색만 바꾸는거라도 어떤 특정셀에 노랑, 빨강, 파랑이 들어가야 된다면 매크로 단축키에 노랑, 빨강, 파랑을 등록하고 상황에 맞게 사용하시면 됩니다.

 

혹은 

[제목] 매크로라는 이름으로 글꼴크기 : 30, 글꼴 : 궁서체, 굵게 등 설정

[강조] 매크로라는 이름으로 글꼴크기 : 15, 글꼴 : 나눔고딕, 기울게, 밑줄, 빨간배경색 등 설정

매크로를 여러개 만들어 필요에 따라 불러올 수도 있습니다.

 

 

이처럼 매크로에 사용에 대한 효율성은 엑셀의 숙련도나 반복패턴을 어떻게 분석하냐에 따라 좌지우지됩니다.

 

이상 매크로 사용법에 대해서 알아보았습니다.

 

 

 

궁금하거나 어떻게 엑셀을 사용해야할지 모르는 부분이 있을경우 댓글을 달아주세요

시간이 될때 참고하여 글을 올려보겠습니다.

 

감사합니다.

반응형
반응형

안녕하세요.

오늘은 엑셀 기초 필터 사용법에 대해서 알아보도록 합시다.

 

필터를 사용하는 이유는 방대한 데이터를 사용하고자 하는 입장에서 원하는 데이터를 일일이 확인하기 어려울때가 반드시 생기게 됩니다.

그럴때 단순필터, 다중필터, 조건필터를 이용하여 원하는 데이터를 얻고자 할때 사용합니다.

 

아래 예시를 통해 함께 배워보도록 합시다.

 

데이터

필터기능을 사용하기전 이름, 부서, 직급, 지역, 나이, 근무여부가 입력된 데이터를 만들어 봤습니다.

단순 예시 데이터이기 때문에 10건도 되지 않아 육안으로 확인할 수 있지만 데이터가 많아진다면 더욱 육안으로 확인하기 어려워질때가 찾아옵니다.

 

필터위치

필터위치는 홈-편집탭에서 정렬및 필터를 클릭하게되면 나옵니다.

필터는 한 시트에 한개만 적용되니 착오없이 사용하시기 바립니다.

드래그 하지 않아도 필터가 적용되지만 열셀에 공백이 있을경우 필터 적용이 잘 되지 않을수 있으니 사용하고자 하는 범위를 드래그 후 필터적용하는 것을 지향합니다.

 

필터적용

필터를 적용하게 되면 해당 셀 맨위부분에 아래화살표로 된 아이콘이 표시되게됩니다.

 

 

필터링

아래 화살표 아이콘을 클릭하게 되면 필터링 옵션이 나옵니다.

개발팀을 필터링 해봅시다.

 

필터링_개발팀

개발팀을 제외한 부서를 체크 해제한 뒤 확인버튼을 클릭하게되면 개발팀이 필터링이 됩니다.

홍길동과 임꺽정이 개발팀으로 확인되었네요.

 

하지만 이러한 단순 필터를 통한 필터링은 체크박스에 있는 데이터에 의존되어 있어 디테일한 필터링을 하기 어렵습니다.

나이같은 경우가 디테일한 필터링이 필요한 경우겠는데요.

이러한 경우 조건 필터를 통해 필터링을 하면 되겠습니다.

 

조건 필터

다시한번 아래화살표 아이콘을 눌러 위 예시와 같이 숫자필터(F)에 마우스를 갖다 대면 여러 조건들이 나옵니다.

30살이 넘는 직원들에 대한 필터링을 해봅시다.

 

조건필터 적용

보다 큼을 클릭하면 사용자 지정 자동 필터 창이 나옵니다.

이전에 배웠던 >, >= <, <=, = 기호가 나오는걸 확인할 수 있네요 ㅎㅎ

보다 큼을 선택했으니 > 기호가 자동으로 선택되는걸 확인할 수 있습니다.

>와 30을 입력하고 확인버튼을 누르면 30보다 큰 직원들이 필터링 된걸 확인 할수 있습니다.

 

 

이러한 조건필터는 숫자만 해당되는것이 아니라 다른 필드에도 적용이 가능합니다.

 

텍스트 필터

이름 필드 필터 옵션에서 텍스트 필터를 확인하면 같음, 같지않음, 포함 등 다양한 옵션이 있습니다

여기서 포함을 클립해봅시다.

 

텍스트 포함

텍스트 포함을 클릭하면 사용자 지정 자동 필터가 나옵니다.

김을 포함하는 직원에 대한 필터링을 걸어보면 김에 대한 필터링이 되는걸 확인할 수 있습니다.

포함을 선택하면 [나김김]이라는 직원이 있을때 나김김직원도 표시가 되지만

김씨 성을 갖는 직원을 필터링 하고자 한다면 텍스트 필터 옵션에서 시작문자를 선택후 김을 입력하면 김씨 성을 갖는 직원이 필터링 되겠죠?

 

또, 여러 필터를 적용하고자 한다면 해당 필드의 필터를 적용해주면 됩니다 ㅎㅎ

 

마지막으로 필터링을 해제하는 방법입니다.

 

필터링 해제

필터가 적용되어있는 필드의 필터 옵션에서 필터 해제를 클릭하거나, 단순필터일경우 모두선택을 해주면 됩니다.

 

이상으로 엑셀 필터 사용법에 대한 알아보았습니다.

감사합니다.

반응형
반응형

안녕하세요.

window의 편의기능을 알려리고자 새로운 카테고리를 새로 생성하였습니다.

 

그 첫번째 글로, window 작업표시줄에 있는 아이콘을 바로 불러오는 방법을 소개하겠습니다.

 

먼저, 실행방법은 키보드에 있는 시작버튼과 키보드 1~0버튼을 눌러주면 작업표시줄에 있는 첫번째부터 10번째까지 설정되어있는 프로그램이 실행됩니다.

가상키보드

 

 

아래 사진과 같이 window + 1을 눌렀을 경우 첫번째 설정되어있는 크롬이 실행되게 됩니다.

 

 

이 기능을 좀더 편리하게 사용하기 위해서는 작업표시줄 고정기능을 사용해서 자주 사용하는 프로그램을 작업표시줄에 고정시켜 윈도우 + 1~0 버튼으로 바로 실행 시킬 수 있도록 하면 사용하는 입장에서 프로그램 실행이 원활하다고 느껴지게됩니다.

 

 

※ 기능을 효율적이고 편리하게 사용하는 방법 생각하기.

해당 기능을 좀더 효율적으로 사용하기 위해서는 자신이 어떤 프로그램을 자주 사용하는지 먼저 생각해봐야 합니다.

 

저 같은 경우에는 인터넷, 탐색기, 개발툴을 자주 사용하기 때문에 작업표시줄에 고정시켜 놓았습니다.

 

굳이 어떤걸 하는게 좋을까 라는 생각보다는 사용하다가 계속 클릭하되고나, Alt + Tab 으로 자주 보게되는 프로그램을 고정시켜 놓으면 좋을 것 같습니다.

 

편리한 컴퓨터 생활이 되었습면 좋겠습니다.

 

감사합니다.

반응형

+ Recent posts