Excel VBA質問箱 IV

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

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


13338 / 13645 ツリー ←次へ | 前へ→

【5839】有効数字について 平りん 03/6/3(火) 11:33 質問
【5842】Re:有効数字について Nakamura 03/6/3(火) 12:14 回答
【5845】Re:有効数字について こうちゃん 03/6/3(火) 13:04 回答
【5853】説明不足だったかも 平りん 03/6/3(火) 14:59 発言
【5854】Re:説明不足だったかも Nakamura 03/6/3(火) 15:17 回答
【5855】できました 平りん 03/6/3(火) 15:40 お礼

【5839】有効数字について
質問  平りん E-MAIL  - 03/6/3(火) 11:33 -

引用なし
パスワード
   有効数字、上位○○桁からの四捨五入とか
切り捨て、切り上げはどうすれば
いいでしょうか
つまり
145200のとき
145000
2356780のとき
2360000
3250のとき
3250
75368954のとき
75400000
みたいな感じです。

【5842】Re:有効数字について
回答  Nakamura  - 03/6/3(火) 12:14 -

引用なし
パスワード
   こんにちは

マクロでするならワークシート関数を使ってこんな感じ

Sub test()

  MsgBox WorksheetFunction.Round(75368954, -5)
  MsgBox WorksheetFunction.RoundDown(75368954, -5)
  MsgBox WorksheetFunction.RoundUp(75368954, -5)
  
End Sub

それでは

【5845】Re:有効数字について
回答  こうちゃん E-MAIL  - 03/6/3(火) 13:04 -

引用なし
パスワード
   平りんさん、Nakamuraさん、こんにちは

Nakamuraさんの回答の桁数を指定できるようにしてみました。
A1セルの値を、有効3桁で丸めます。

MsgBox WorksheetFunction.Round(Range("A1").Value, (Len(Range("A1").Value) - 3) * -1)

【5853】説明不足だったかも
発言  平りん E-MAIL  - 03/6/3(火) 14:59 -

引用なし
パスワード
   え〜と
説明不足だったかも
上位 3(例えばです)
とは
1235が1240(上から4桁目を支社五入)
32689が32700(〃)
52698325が52700000(〃)
という意味なんです。
出てくる桁数はまちまちで
何十桁あろうとも
上から(4)桁目を四捨五入等
するという事なんです。
でも教えて頂いた
VBAが対応してたら
ごめんなさい
ところで、関数では無理なんでしょうか?

【5854】Re:説明不足だったかも
回答  Nakamura  - 03/6/3(火) 15:17 -

引用なし
パスワード
   こんにちは

関数ならこんな感じ

=ROUND(A1,3-LEN(A1))

それでは

【5855】できました
お礼  平りん E-MAIL  - 03/6/3(火) 15:40 -

引用なし
パスワード
   ▼Nakamura さん:
>こんにちは
>
>関数ならこんな感じ
>
>=ROUND(A1,3-LEN(A1))
>
>それでは
ありがとうございます。
できました。
VBAでもチャレンジします。

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