ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 환율 계산기
    AI 활용기록 2024. 11. 12. 20:31
    환율 계산기

    연습용, 기록용 

     

     

    UPDATE EXCHANGE 버튼 클릭 시 달러 대비 원화 환율 업데이트 

     

    기준

     

    exchangeratesspi.io 

     

    무료버전은 유럽 환율 기준이라, EUR 기준으로 USD와 KRW의 환율 값을 가져온 뒤 다시 계산 

     

    코드

     

    Sub GetUSDToKRWExchangeRateWithDateTime()
        Dim http As Object
        Dim JSON As Object
        Dim url As String
        Dim ws As Worksheet
        Dim lastRow As Long
        Dim usdToKrw As Double
        
        ' API URL 설정 (KRW와 USD 요청)
        url = "https://api.exchangeratesapi.io/v1/latest?access_key=13a71d631b5cda38f59860e104ddde07&symbols=KRW,USD"
        
        ' HTTP 요청
        Set http = CreateObject("MSXML2.XMLHTTP")
        http.Open "GET", url, False
        http.Send
        
        ' JSON 파싱
        If http.Status = 200 Then
            Set JSON = JsonConverter.ParseJson(http.responseText)
            
            ' USD-KRW 환율 계산
            If Not IsEmpty(JSON("rates")("KRW")) And Not IsEmpty(JSON("rates")("USD")) Then
                usdToKrw = JSON("rates")("KRW") / JSON("rates")("USD")
                
                ' 데이터를 저장할 워크시트 설정
                Set ws = ThisWorkbook.Sheets("Sheet1")
                
                ' 마지막 행 찾기
                lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
                
                ' 데이터 추가 (날짜 + 시간)
                ws.Cells(lastRow, 1).Value = Now ' 현재 날짜와 시간
                ws.Cells(lastRow, 2).Value = 1 ' RATE(USD)는 항상 1로 설정
                ws.Cells(lastRow, 3).Value = Round(usdToKrw, 2) ' RATE(KRW)에 환율 값
                
                ' 테두리 설정 (A4:C 마지막 행에만 테두리 적용)
                With ws.Range(ws.Cells(4, 1), ws.Cells(lastRow, 3)).Borders
                    .LineStyle = xlContinuous
                    .Weight = xlThin
                End With
                
                ' 정렬 설정 (A1:C 마지막 행까지 적용)
                With ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, 3))
                    .HorizontalAlignment = xlCenter
                    .VerticalAlignment = xlCenter
                End With
                
                MsgBox "환율 데이터가 업데이트되었습니다.", vbInformation
            Else
                MsgBox "환율 데이터가 누락되었습니다.", vbExclamation
            End If
        Else
            MsgBox "API 요청 실패: " & http.Status, vbExclamation
        End If
    End Sub

Designed by Tistory.