Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8080 / 13646 ツリー ←次へ | 前へ→

【35245】テキストボックスに表示させた値の小数点... ぷーちゃん 06/2/24(金) 10:59 質問[未読]
【35246】Re:テキストボックスに表示させた値の小数... Jaka 06/2/24(金) 12:55 発言[未読]
【35255】Re:テキストボックスに表示させた値の小... ぷーちゃん 06/2/24(金) 14:09 お礼[未読]
【35247】Re:テキストボックスに表示させた値の小数... かみちゃん 06/2/24(金) 12:59 発言[未読]
【35254】Re:テキストボックスに表示させた値の小... ぷーちゃん 06/2/24(金) 13:58 質問[未読]
【35256】Re:テキストボックスに表示させた値の小... かみちゃん 06/2/24(金) 14:10 発言[未読]
【35263】Re:テキストボックスに表示させた値の小... ぷーちゃん 06/2/24(金) 14:57 発言[未読]
【35264】Re:テキストボックスに表示させた値の小... かみちゃん 06/2/24(金) 15:14 発言[未読]
【35265】Re:テキストボックスに表示させた値の小... ぷーちゃん 06/2/24(金) 15:36 お礼[未読]

【35245】テキストボックスに表示させた値の小数点...
質問  ぷーちゃん  - 06/2/24(金) 10:59 -

引用なし
パスワード
   マクロで計算させた値をセルに表示させ、このセルの値を、コントロールツールボックスから作ったテキストボックスに、LinkedCellを用いて表示させていますが、小数点をコントロールできません。
小数点は、1桁表示させたいのですが、例えば1.0や3.0は1や3になってしまいます。1.2や3.6等の小数点以下の数字がある場合は、うまくいくのですが・・・
マクロの計算結果はRound関数で小数点1桁に制限してますし、それを表示させるセルも、セルの書式設定・表示形式で小数点1桁に制限してます。

どなたか解る方、解決方法を教えてください。

【35246】Re:テキストボックスに表示させた値の小...
発言  Jaka  - 06/2/24(金) 12:55 -

引用なし
パスワード
   回答ではないけれど...。
リンクで表示させると実際の値を表示させてしまうんじゃないかと思います。
日付をコンボボックスなどRowSurceだと、コンボボックスで選択した後シリアル値に変わっていた記憶があります。
こんな感じに自分で入れるか、
値 = 85.245
MsgBox Format(値, "0.0")

range("A1").text で取得するとか...。

【35247】Re:テキストボックスに表示させた値の小...
発言  かみちゃん  - 06/2/24(金) 12:59 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>小数点は、1桁表示させたいのですが、例えば1.0や3.0は1や3になってしまいます。1.2や3.6等の小数点以下の数字がある場合は、うまくいくのですが・・・

よくわかりませんが、
Format(Range("A1").Value, "0.0")
でできませんか?

【35254】Re:テキストボックスに表示させた値の小...
質問  ぷーちゃん  - 06/2/24(金) 13:58 -

引用なし
パスワード
   ▼かみちゃん さん:

>Format(Range("A1").Value, "0.0")


まだ何も解っていない超初心者なので、すいません。

そのままコードにいれたら、コンパイルエラーとなってしまいます。
なにか、常識的に一緒に入れるコードでもあるのでしょうか?

【35255】Re:テキストボックスに表示させた値の小...
お礼  ぷーちゃん  - 06/2/24(金) 14:09 -

引用なし
パスワード
   ▼Jaka さん:

>値 = 85.245
>MsgBox Format(値, "0.0")
>
>range("A1").text で取得するとか...。


Jakaさん、アドバイスありがとうございます。
超初心者なので、よく解らないのですが、これをもとに、いろいろ試してみようと思います。

【35256】Re:テキストボックスに表示させた値の小...
発言  かみちゃん  - 06/2/24(金) 14:10 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>そのままコードにいれたら、コンパイルエラーとなってしまいます。
>なにか、常識的に一緒に入れるコードでもあるのでしょうか?

どんなコードを書いたのか、ご提示がないので、わかりませんが、
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

もしかして、
Format(Range("A1").Value, "0.0")
だけを記述すると、たしかにコンパイルエラーになりますよ。
そもそも、どういうコードにしようとしているのかがわからなかったので、具体的
アドバイスができなかっただけです。すみません。

【35263】Re:テキストボックスに表示させた値の小...
発言  ぷーちゃん  - 06/2/24(金) 14:57 -

引用なし
パスワード
   ▼かみちゃん さん:
>どんなコードを書いたのか、ご提示がないので、わかりませんが、
>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

【35264】Re:テキストボックスに表示させた値の小...
発言  かみちゃん  - 06/2/24(金) 15:14 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ここでTextbox1内の値の表示を、小数点1桁にしたいのですが、小数点以下が0の場合は1桁表示にならないので(1.0や3.0は1や3になってしまう)、これを直したい

LinkedCellを使う必要性がよくわからないのですが、
Sheet1.TextBox1.Text = Format(1, "0.0")
というような感じではいけないのでしょうか?

【35265】Re:テキストボックスに表示させた値の小...
お礼  ぷーちゃん  - 06/2/24(金) 15:36 -

引用なし
パスワード
   ▼かみちゃん さん:

>LinkedCellを使う必要性がよくわからないのですが、
>Sheet1.TextBox1.Text = Format(1, "0.0")
>というような感じではいけないのでしょうか?


かみちゃんさん、ありがとうございます。
ActiveSheet.TextBox1.Text = Format(Range("IT1"), "0.0") でうまくいきました。
本当に感謝致します。助かりました。

8080 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free