|
▼かみちゃん さん:
>どんなコードを書いたのか、ご提示がないので、わかりませんが、
>Sub Test1()
> Dim Data As Single
>
> Data = 85.245
> MsgBox Format(Data, "0.0")
>End Sub
>
>Sub Test2()
> MsgBox Format(Range("A1").Value, "0.0")
>End Sub
かみちゃんさん、質問内容が解り難くて、すいません。
今、下記のようなコードで計算していて、最後に計算したBBB11とBBB55の値をセルIT1とIU1に入れて、このセル内の値をコントロールツールボックスから作ったテキストボックス(Textbox1)に、LinkedCellを用いて表示させています。
ここでTextbox1内の値の表示を、小数点1桁にしたいのですが、小数点以下が0の場合は1桁表示にならないので(1.0や3.0は1や3になってしまう)、これを直したいのです。 よい方法がありましたら、よろしくお願い致します。
Sub Macro4()
'
' Macro4 Macro
'
Dim MyCh As Chart, MySe As Variant
Dim i As Integer
Dim MxP As Single, MiP As Single
Dim KanA As Single, KanB As Single
AAA1 = 5
AAA2 = 10
AAA3 = 50
AAA4 = 500
AAA5 = 5000
AAA6 = 50000
AAA7 = 500000
BBB = 5
Set MyCh = ActiveSheet.ChartObjects("グラフ 809").Chart
Set MySe = MyCh.SeriesCollection
With WorksheetFunction
For i = 1 To MySe.Count
If i = 1 Then
MxP = .Max(MySe.Item(i).Values)
MiP = .Min(MySe.Item(i).Values)
Else
If .Max(MySe.Item(i).Values) > MxP Then
MxP = .Max(MySe.Item(i).Values)
End If
If .Min(MySe.Item(i).Values) < MiP Then
MiP = .Min(MySe.Item(i).Values)
End If
End If
Next i
MxP = .Ceiling(MxP, 0.05)
MiP = .Floor(MiP, 0.05)
If MiP < 100 Then KanA = AAA1
If MiP >= 100 And MiP < 1000 Then KanB = AAA2
If MiP >= 1000 And MiP < 10000 Then KanB = AAA3
If MiP >= 10000 And MiP < 100000 Then KanB = AAA4
If MiP >= 100000 And MiP < 1000000 Then KanB = AAA5
If MiP >= 1000000 And MiP < 10000000 Then KanB = AAA6
If MiP > 10000000 Then
KanA = AAA7
End If
End With
With WorksheetFunction
MxP = .Ceiling(MxP, KanB)
MiP = .Floor(MiP, KanB)
End With
With MyCh.Axes(xlValue)
.MinimumScale = MiP
.MaximumScale = MxP
End With
BMa1 = MyCh.Axes(xlValue).MajorUnit
BMi1 = MyCh.Axes(xlValue).MinimumScale
BBB1 = BMi1 + BMa1
BBB4 = BMi1 + BMa1 * (BBB - 1)
BBB5 = BMi1 + BMa1 * BBB
BBB11 = ((BBB1 / BMi1) - 1) * 100
BBB55 = ((BBB5 / BBB4) - 1) * 100
Range("IT1") = Round(BBB11, 1)
Range("IU1") = Round(BBB55, 1)
Set MySe = Nothing: Set MyCh = Nothing
End Sub
|
|