[땡큐엑셀vba & 엑셀매크로] 연속된 맥어드레스 출력하기
엑셀vba예제2020. 8. 6. 00:00
'엑셀 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
'엑셀vba예제' 카테고리의 다른 글
[땡큐엑셀vba & 엑셀매크로] 위로 아래로 행이동 (0) | 2020.08.08 |
---|---|
[땡큐엑셀vba & 엑셀매크로] 특정값 아래에 행삽입 (0) | 2020.08.07 |
[땡큐엑셀vba & 엑셀매크로] 프로야구 선수(투수 및 타자)의 기록순위 (0) | 2020.08.05 |
[땡큐엑셀vba & 엑셀매크로] 특정 문자 갯수 구하기-사용자정의함수 (0) | 2020.08.04 |
[땡큐엑셀vba & 엑셀매크로] 값에 해당하는 이미지 붙여넣기 (0) | 2020.08.03 |