기본 콘텐츠로 건너뛰기

(VBA) 013 - 조건문을 사용해봅시다! if





#毎日育ちゃん可愛い大会
(설명자료)
pptx파일
(xlsm파일)
xlsm파일


★ 진행목적 : 왜 이걸 사용합니까.
1)VBA나 엑셀을 사용하다보면 특정 조건을 분기로 다른 데이터 처리방법을 사용하는 경우가 있습니다.
2)이것을 처리하는 것이 if문입니다! (switch-case문도 있지만, 이건 다음에 다루도록 할게요!
3)if를 사용하면 하나의 함수를 만들어 여러 가지 데이터를 처리할 수 있다는 이점이 있지요!

★ 어떤 경우 사용합니까?
1)예를 들자면, 데이터의 종류가 3가지라고 합시다. (0보다 크다, 0이다, 0보다 작다)
2)이 때, 이 데이터에 따라 각기 다른 데이터 처리를 해야한다고 하면지금까지의 학습 내용이라면 함수를 세 개를 만들고 각 조건별로 다른 함수를 불러야 하겠지요!
3)이를 해결하기 위해서, 하나의 함수에 조건문을 넣어서 처리해주는 것입니다!


예제의 처리과정을 알아봅시다!
1)예제에서는 0보다 클 때는 10배를 곱하고, 0보다 작을 때는 -1을 곱하고, 나머지의 경우(0인 경우) 1,
바로 옆 Cell에 기록합니다!
2)Cell의 데이터를 조건식으로 받기 위해 If, Elseif의 옆에 달아놓았습니다.
3)이렇게 함수를 구현하면, 하나의 함수로 여러 가지 처리방법을 적용할 수 있겠지요!
4)처음엔 If~then, 두 번째 조건부터는 Elseif~then, 나머지 모든 조건은 Else로 처리하는 것으로 기억합시다!

Sub Test()
    Dim i As Integer
    
    Range("A2").Select
    i = 0
    Do
        If ActiveCell.Offset(i, 0).Value > 0 Then
            ActiveCell.Offset(i, 1).Value = _
            ActiveCell.Offset(i, 0).Value * 10
        ElseIf ActiveCell.Offset(i, 0).Value < 0 Then
            ActiveCell.Offset(i, 1).Value = _
            ActiveCell.Offset(i, 0).Value * (-1)
        Else
            ActiveCell.Offset(i, 1).Value = 1
        End If
        i = i + 1
    Loop Until ActiveCell.Offset(i, 0).Value = ""
    
    Cells(1, 1).Select
End Sub

(中谷育ちゃんのイメージについて)
本当に可愛い中谷育ちゃんのイメージが含まれています。ありがとうございます。
何か問題があったら、教えてください。直ちに処理します。

(About translation this material to the other languages)
If you need this information with other language, then let me know about that.
I will do my best to translate this material to language you ask me to, so you can use this material with the language you want to use. Thank you.

댓글

이 블로그의 인기 게시물

(VBA) 009 - 닫힌 파일에서 데이터 읽어오기 (ExecuteExcel4Macro)

#毎日育ちゃん可愛い大会 예시의 매크로 파일을 테스트 할 때는 저장된 폴더를 사용하실 폴더로 꼭 바꿔주세요! (pptx파일) pptx파일 (xlsx파일) 예제데이터파일   Macro파일 ★ 진행목적 : 왜 이걸 사용합니까 . 1) 행이나 열 , 또는 Sheet 과 같이 다른 특성을 가지는 1,2,3 차 데이터배열에 대한 처리 방법을 지금까지 설명드렸습니다 . 2) 그럼 이제 , 다른 파일에서 데이터를 읽어올 방법을 알아볼 필요가 있습니다 . 어째선가 회사의 데이터를 처리하다보면 , 주기적인 이름의 엑셀 파일 특정 Sheet, Cell 에 있는 경우가 많았습니다 . 3) 엑셀에서 이미 열려있는 파일의 참조는 ‘=‘ 을 사용하면 가능하지만 , 닫힌 파일은 데이터를 읽지 못합니다 . 4) 그래서 이를 처리하기 위해 VBA 의 ‘ExecuteExcel4Macro( 주소 )’ 를 사용합니다 ! ★ 다른 파일의 참조는 어떻게 합니까 ? 1) 열려 있는 다른 파일의 데이터를 읽는 방식은 ‘=‘ 을 입력하고 해당 Cell 을 클릭하면 됩니다 ! 2) 그러면 아래와 같이 (=‘ 파일이 있는 폴더 [ 파일명 ]Sheet 명 ’!Cell 주소 ) 의 형태로 기록 이 됩니다 . ★ 닫힌 파일에 대해서는 INDIRECT 는 사용이 되질 않습니다 ! 1) INDIRECT 로는 처리가 되질 않습니다 . 2) 어째선가 전에 사용하던 INDIRECT 를 사용하고 싶지만 , 사용이 되질 않습니다 . 검색을 해봐도 안된다는 답변만 있네요 ! 3) 파일이 하나 두 개라면 , 이전과 같이 ‘=‘ 를 쓰면 되겠지만 , 그러면 자동화를 통한 효율화가 불가능해지겠죠 ! 4) 그래서 이를 처리하기 위해 VBA 의 ‘ExecuteExcel4Macro( 주소 )’ 를 사용합니다 ! ★ ExecuteExcel4Macro 는 어떻게 사용합니까 ? 1) VBA 의 ExecuteExcel4Macro 란 매크로...

[Python] 크롤링 HTTP Forbidden 403 문제 해결

  코드에는 문제가 없는데 HTTP 403 Forbidden이 발생하길래.. 검색해보니까 서버사이드에서 저 같은 불법 크롤러를 거르는 메쏘드가 있는 모양입니다. 아래의 링크를 참고해서 해결했습니다 https://howtoworld.tistory.com/52 urllib에서 Request를 import 해줘야합니다. 1 2 3 4 def  hellenicshipping():     url  =  Request( "https://www.hellenicshippingnews.com/category/shipping-news/dry-bulk-market" ,headers = { 'User-Agent' :  'Mozilla/5.0' })     html  =  urlopen(url)     savefile  =   './hsn.txt' Colored by Color Scripter cs

(Node.js) EUC-KR을 Cheerio - Iconv-lite로 불러올 때

처음으로 Node.js로 웹 데이터 수집을 해봤는데, 글자가 자꾸 깨져서 수십번의 실패 끝에 되는 방법을 찾았습니다. 웹에는 iconv와 iconv-lite 두 가지 방법이 나오는데, iconv는 무슨 문제에선가 설치가 잘 안됩니다. 그래서 iconv-lite를 이용해서 진행했는데 이 경우에는 아래 순서로 코드가 진행될 것입니다. Request >> Cheerio >> iconv-lite 여기서 Cheerio와 iconv-lite 모듈 사용 위치가 중요한데, 만약 잘못되었다면 '占쏙옙'또는 '�'을 만나게 됩니다. 웹에서 검색해보면 인코딩이 잘못됐으니 로드된 데이터를 iconv-lite로 바꾸라고 하는데, 모듈 사용이 적절하게 되지 않고 데이터를 읽어들이면 이미 깨진 데이터를 저장하기 때문에 역으로 디코딩 자체도 당연히 제대로 안됩니다. 그래서 여기저기서 주워온 지식들을 합쳐보니까 아래와 같이 하면 해결이 됐습니다 ㅎ.ㅎ 오늘도 웹에 계신 수많은 선생님들 감사합니당!!! <방법> 1. request 옵션에서 인코딩은 Null로 설정 2. 아래와 같이 Cheerio에서 불러들일 때 iconv-lite의 iconv.decode(Target 변수, 'EUC-KR') 3. 마지막으로 데이터 출력할 때는 별도의 모듈을 사용하지 않고 .text()로 읽어들인다.