| 
    
     |  | ▼質問者 さん: >データ型を変更したのですが、Hex関数の部分がどうしても
 >オーバーフローを回避する方法を教えて下さい。
 
 こんな風な関数でどうですか
 Sub TestvbDec2Hex()  ' テストしたもの
 Debug.Print vbDec2Hex(CDec(2 ^ 8) - 1)
 Debug.Print vbDec2Hex(CDec(2 ^ 32) - 1)
 Debug.Print vbDec2Hex(CDec("1234567890123456"), 16)
 End Sub
 
 '********************************************************
 '*** TargetValeu : 変換データ
 '*** col     : 表示桁数 8桁標準
 '********************************************************
 Public Function vbDec2Hex(ByVal TargetValue As Variant, _
 Optional ByVal col As Long = 8)
 Const Base   As Long = 16
 Const CharList As String = "0123456789ABCDEF"
 Dim nVal    As Variant
 Dim vVal    As Variant
 
 Do
 nVal = Fix(TargetValue / Base)
 vVal = (TargetValue - (nVal * Base))
 
 vbDec2Hex = Mid(CharList, vVal + 1, 1) & vbDec2Hex
 
 TargetValue = nVal
 Loop Until TargetValue = 0
 If Len(vbDec2Hex) < col Then
 vbDec2Hex = Right(String(col, Left(CharList, 1)) & vbDec2Hex, col)
 End If
 End Function
 
 |  |