포트폴리오

VBA기초부터(1)

자동산양 2024. 1. 16. 22:03

vba란 excel에서 사용자가 원하는 기능을 프로그래밍 언어를 통해 개발할 수 있게 해줍니다

 

excel은 기본 함수로도 충분히 많은 기능을 수행 할 수 있지만

 

VBA까지 사용하게 되면 복잡한 계산식이나 반복작업까지 할 수 있게 됩니다

 

1) VBA 아무거나 해보기

VBA를 실행하기 위해서는

1. Excel옵션에서 사용자 지정 탭 진입하여 VBA활성화 시키기

2. 개발도구 탭에서 Visual Basic 클릭

3. alt+f11 

를 사용하여 vba 창을 출력 할 수 있습니다

 

 

일단 먼저 해볼것은 엑셀 창에 숫자와 텍스트를 입력하는 것 입니다

 

Sub title()

End sub()

sub 제목() 과 end sub() 사이에 명령어들을 입력하여 실행시킵니다

 

저는 아래의 예제를 사용했습니다

Sub Title()

Cells(1, 1) = 2
Cells(1, 2) = "옆에줄"

n = Cells(1, 1) '주석처리

Cells(1, 3) = n


''사칙연산
Cells(2, 1) = "덧셈"
Cells(3, 1) = n + n

Cells(2, 2) = "뺄셈"
Cells(3, 2) = n - n

Cells(2, 3) = "곱셈"
Cells(3, 3) = n * n

Cells(2, 4) = "나눗셈"
Cells(3, 4) = n / n

Cells(2, 5) = "제곱"
Cells(3, 5) = n ^ n

Cells(2, 6) = "and연산자"
Cells(3, 6) = n & n


End Sub

엑셀 칸에 입력하는 방법은

Cells() 과

Range() 2가지 방법이 있습니다

예시로 ' Cells(1,1)과 Range("A1")는 동일한 1행A열을 가르킵니다

오늘은 Cells만 사용하겠습니다

 

해당 예제는 VBA주석처리(입력해도 실행 시 인식하지 않음 메모용)

연산자의 사용 예제

변수 값 대입 등이 사용되었습니다

 

작성 후 실행(단축키 F5)을 하면 다음과 같이 엑셀에 출력됩니다

 

2) 이제 기본도 익혔으니 간단하게 하고싶은걸 정해봅시다

첫번째로는 값 입력받기

두번째는 입력받은 값으로 뭔가 해보기(금 함량에 따른 값 계산하기)

세번째는 VBA실행 버튼 Excel에 출력하기

 

VBA에서 값을 입력받기 위해서 여러가지 방법이 있지만

Inputbox 함수를 사용하여 입력 받겠습니다

아래는 Inputbox 함수 예시입니다

Sub UsingInputPrint()

    Dim inputvalue01 As Double ' 변수 단위를 integer에서 double로 바꿈
    ' Run the Input Box.
    ' 변수 = InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
    inputvalue01 = Application.InputBox("오늘 금값 입력.", _
       "숫자만입력", , 250, 75, "", , 1)
 
    ' 확인을 눌렀을 때 진행
    If inputvalue01 <> False Then
       ' A1 에 입력한 값 표시
       Range("a1").Value = inputvalue01
    End If

End Sub

원래 예시에서는 변수 단위가 int였으나 오버플로 에러때문에 double로 바꿔주었습니다

여러가지 알아야 할 것이 많아보이지만 오늘 목표는 입력받는 것 이기 때문에 

함수가 잘 작동하는지만 살펴봅시다

 

별다른 이상이 없으면 해당 창이 출력되며 숫자 외의 값은 '숫자가 잘못되었습니다' 경고 팝업이출력됩니다

 

이렇게 첫번째로 값을 입력받는데 성공했으니 두번째 단계로 넘어갑시다

 

두번째는 입력받은 24K금값을 통해 18K 14K함량의 금값을 출력하게 해보겠습니다

Sub UsingInputPrint()
    Dim inputvalue01 As Double ' 변수 단위를 integer에서 double로 바꿈
    ' Run the Input Box.
    ' 변수 = InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
    inputvalue01 = Application.InputBox("오늘 금값 입력.", _
       "숫자만입력", , 250, 75, "", , 1)
 
    ' 확인을 눌렀을 때 진행
    If inputvalue01 <> False Then
       ' A1 에 입력한 값 표시
       Range("a1").Value = inputvalue01
    End If
    
    ' Cells(1,1)과 Range("A1")는 동일
    Cells(2, 1) = "24K 금값"
    Range("a3").Value = inputvalue01 * 1
    Range("a4").Value = "=RoundUp(A3, -3)"
    
    Cells(2, 2) = "18K 금값"
    Range("b3").Value = inputvalue01 * 0.825
    Range("b4").Value = "=RoundUp(B3, -3)"
    
    Cells(2, 3) = "14K 금값"
    Range("c3").Value = inputvalue01 * 0.6435
    Range("c4").Value = "=RoundUp(C3, -3)"
    
    
End Sub

기본 입력받은 24K값을 통해

18K = 24K * 0.825

14K = 24K * 0.6435

 

18K와 14K의 값을 정해주고 원하는 행렬에 출력되게 했습니다

 

24K금값이 34만원이라 가정하고 출력하겠습니다 

4번째 줄은 마진을 위해 1천미만 단위의 금액은 Roundup 함수를 통해 올림처리하였습니다

RoundUp(행렬위치,올림할 단위) 로 사용하시면 됩니다 -3은 100의 자리 3은 소수점 3번재 자리 정도로 이해하시면 됩니다

 

이제 입력받는 기능과 입력받은 값으로 원하는 곳에 출력하기 까지 성공했으므로

 

세번째 목표인 VBA버튼을 만들어 쉽게 실행시킬수 있게 해보겠습니다

 

개발 도구 탭에서 삽입 버튼 터치중 단추를 터치하여 엑셀창에 아무렇게 그립니다

 

그럼 해당 매크로 지정 창이 출력되게 되는데

 

아까 사용했던 sheet1의 VBA명령어를 가져오게 체크해줍니다

그럼 이렇게 단추 생성이 완료됐으니 재대로 작동하는지 실행해봅시다

 

이제 오늘 금값인 340000원을 입력

 

위에서 실행시킨것과 똑같이 출력되는것을 확인 할 수 있습니다

 

# 오늘 해본 것

# VBA 실행해보기

# VBA 예제로 사칙연산 예제 작성해보기

# VBA 값 입력받기

# VBA 수식 적용시켜보기

# VBA 버튼으로 출력해보기

'포트폴리오' 카테고리의 다른 글

자기소개서 수정하기  (4) 2025.03.01
포트폴리오 묶음  (0) 2024.02.28
유니티 기록  (0) 2023.01.18
유니티 기록  (0) 2022.12.27
테이블 관리 실무  (0) 2021.12.05