|
大変遅くなりました
ご提示頂いた、StrCompで希望の操作はかないました
ichinose さん ありがとうございました
また、不具合の原因はエクセルの制限 有効桁数15桁 にあることがわかりました
Excel のセルに桁数の多い数字を入力すると最後の桁がゼロに変更される
://support.microsoft.com/kb/269370/ja
ただ、15桁超えを触りたいこともあるような気がして、時間が取れたときに
調査している間に遅くなってしまいました m(_ _)m
要は、
セル値においては15桁制限がありそれを超えて操作する場合は文字列として扱う
でした
下記によくわかりません
Q1
VBAでは通貨型ですれば扱えるような記載はwebではあったのですが
下記マクロでは15桁制限があるようです
コード中に記載
Q2
またb5-b11でセル表示が、右寄せ、左寄せの原因がわかりません
Q3
結構わずらわしそうな気がしますが
15桁以上数値扱いしたい場合は、15桁以下で分割処理で結合みたいな方法しかないのでしょうか
↑出来るかどうか いまいち自信がありませんが・・・
アドバイス有りましたらよろしくお願いいたします
テストコード
Sub cell_set()
With Range("B1:B4")
.NumberFormatLocal = "@"
.Interior.ColorIndex = 6
End With
With Range("C1:C2")
.NumberFormatLocal = "0_ "
.Interior.ColorIndex = 8
End With
With Range("C3:C4")
.NumberFormatLocal = "G/標準"
.Interior.ColorIndex = 35
End With
Columns("A:C").ColumnWidth = 44
'Dim d_int As Integer
'Dim d_dbl As Double
'Dim d_lng As Long
'Dim d_cur As Currency
'd_int = 3.5051000100001E+34
'd_dbl = 3.5051000100001E+34
'd_lng = 3.5051000100001E+34
'd_cur = 3.5051000100001E+34
'↑=35051000100001000100004000200000602等 としたが すべて勝手に = 3.5051000100001E+34 となった
Cells(1, 1).Value = "V2_I173 35051000100001000100002000000000402"
Cells(2, 1).Value = "V2_I173 35051000100001000100002000000000402"
Cells(3, 1).Formula = 3.5051000100001E+34
'↑=35051000100001000100004000200000602 としたが 勝手に = 3.5051000100001E+34 となった
Cells(4, 1).Formula = "= 35051000100001000100002000000000402"
Cells(1, 2).Value = "35051000100001000100002000000000402"
Cells(2, 2).Value = "35051000100001000100002000000000402"
Cells(3, 2).Value = "35051000100001000100004000200000602"
Cells(4, 2).Value = "35051000100001000100004000200000602"
Cells(1, 3).Value = "35051000100001000100002000000000402"
Cells(2, 3).Value = "35051000100001000100002000000000402"
Cells(3, 3).Formula = "35051000100001000100004000200000602"
Cells(4, 3).Formula = "35051000100001000100004000200000602"
Cells(5, 2).Formula = "= Mid(A1, Find("" "", A1) + 1, 100)"
Cells(6, 2).Formula = "= Mid(A2, Find("" "", A2) + 1, 100) + 1"
Cells(7, 2).Formula = "= B1"
Cells(8, 2).Formula = "= B1 + 1"
Cells(9, 2).Formula = "= text(B1 + 1,0)"
Cells(10, 2).Formula = "= B1 * 1"
Cells(11, 2).Formula = "=TEXT( B1 * 1,""#"")"
Cells(15, 2).Formula = "=Text_StrComp(B1,B2)"
Cells(16, 2).Formula = "=Text_StrComp(B1,B3)"
Cells(17, 2).Formula = "=Text_StrComp(A3,A4)"
End Sub
Function Text_StrComp(tg1 As Range, tg2 As Range, Optional Opt As String)
Text_StrComp = StrComp(tg1, tg2, vbTextCompare)
End Function
|
|