땡큐엑셀vba & 엑셀매크로

 

'엑셀 VBA를 통해서 자동으로 16진수로된 문자열을 표시 하려 합니다.
'시작 번호(dec)와 끝번호(dec)를 입력해서 값이 나오는것은 해결되었는데
'시작번호(hex)를 입력후 원하는수량(DEC)를 입력하면
'그 수량만큼 시작번호부터 1씩 증가하면서 원하는 수량 만큼 나타나게 하고 싶습니다.
'
'1. 시작번호 : (AA:BB:CC:00:00:0A) => 이중 앞자리 AA:BB:CC:는 고정
'2. 소요량  : 30
'3. 결과 값
'AA:BB:CC:00:00:0A
'AA:BB:CC:00:00:0B
'AA:BB:CC:00:00:0C
'AA:BB:CC:00:00:0D
'.
'AA:BB:CC:00:00:28


'
'source by 땡큐엑셀vba & 엑셀매크로
'
Sub 연속맥주소()

    Dim 뒷번호 As String
    Dim 십진수 As Long
    Dim 십육진수 As String
    
    

    갯수 = Cells(2, "B")
    시작번호 = Cells(2, "A")
    뒷번호 = Mid(시작번호, 10, 2) & Mid(시작번호, 13, 2) & Mid(시작번호, 16, 2)
    앞번호 = Mid(시작번호, 1, 9)
    
    
    '갯수만큼 루프
    For i = 1 To 갯수
        
        '뒷번호에 +1하여 십진수로 변환
        십진수 = hexToDec(뒷번호) + i
    
        '그 값을 16진수로 변환
        십육진수 = decToHex(십진수)
        
        '6자리로 만듬
        헤더 = ""
        For j = 1 To 6 - Len(십육진수)
            헤더 = 헤더 & "0"
        Next j
        십육진수 = 헤더 & 십육진수
        
        '앞번호 & 뒷번호 조립
        결과 = 앞번호 & Mid(십육진수, 1, 2) & ":" & Mid(십육진수, 3, 2) & ":" & Mid(십육진수, 5, 2)
        
        '결과를 셀에 출력
        Cells(i + 1, "A") = 결과
    Next i
    
    
    MsgBox "완료되었습니다", vbInformation, "땡큐엑셀vba & 엑셀매크로"

End Sub


'10진수 --> 16진수
Function hexToDec(Hex As String) As Long
  hexToDec = Val("&H" & Hex)
End Function


'16진수 -> 10진수
Function decToHex(Dec As Long) As String
  decToHex = Hex(Dec)
End Function

연속된 맥어드레스구하기-Hex_Dec-땡큐엑셀vba.xlsm
0.05MB