[[20200506175301]] 『四捨五入のマクロ』(愛子) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『四捨五入のマクロ』(愛子)

お世話になります。

エクセルの数字が範囲;C6からO68迄並んでいます。
その数字の千円未満を四捨五入するマクロを教えて頂けませんでしょうか?

よろしくお願いいたします。

< 使用 Excel:Excel2013、使用 OS:Windows8 >


一例です

 Sub test()
    Dim r As Range

    Set r = Range("c6:o68")
    r.Value = Evaluate("Round(" & r.Address & ", -3)")

 End Sub

(マナ) 2020/05/06(水) 18:32


これでよかった。
 Sub test2()
    Dim r As Range

    Set r = Range("c6:o68")
    r.Value = Application.Round(r.Value, -3)

 End Sub

(マナ) 2020/05/06(水) 18:50


マナさま
有難うございました。

私の伝え方が間違っていました。
すみません。

千円未満を四捨五入して単位を千円にすることでした。

例えば15,678は、15,000ではなく 15 にしたかったのです。
まことにすみませんでした。
(愛子) 2020/05/06(水) 21:49


では、1000 で割って四捨五入
 Sub test3()
    Dim r As Range

    Set r = Range("c6:o68")
    r.Value = Evaluate("Round(" & r.Address & "/1000, 0)")

 End Sub

(マナ) 2020/05/06(水) 22:06


有難うございます。
C6に8,549,389の数字があります。
当然他のO68迄は、違う数字です。

マクロを実行すれば、全ての数字がC6の8549になっています。

よろしくお願いいたします。

(愛子) 2020/05/06(水) 22:39


>全ての数字がC6の8549になっています。

そうですか?
では、これで。

 Sub test4()
    Dim r As Range

    For Each r In Range("c6:o68")
        r.Value = WorksheetFunction.Round(r.Value / 1000, 0)
    Next

 End Sub

(マナ) 2020/05/06(水) 23:07


マナ様
各数字の千円単位、出来ました。
有難うございました。
嬉しかったです。
(愛子) 2020/05/07(木) 07:21

 RoundはVBAにもありますので頭の片隅にでも置いておいてください。

 Sub TestX()
     Dim r As Range
     For Each r In Range("A1:A6")
         r.Offset(, 1).Value = WorksheetFunction.Round(r.Value / 1000, 0)
         r.Offset(, 2).Value = Round(r.Value / 1000, 0)
     Next
  End Sub

  _____ ______ __ __
 |_____|___A__|_B|_C|
 |___1_|   500  1  0
 |___2_| 1,500  2  2
 |___3_| 2,500  3  2
 |___4_| 3,500  4  4
 |___5_| 4,500  5  4
 |___6_| 5,500  6  6

(チオチモリン) 2020/05/07(木) 11:04


 こんばんは!
 >例えば15,678は、15,000ではなく 15 にしたかったのです。 

 普通にRoundして表示だけ 15 にするとか。。
表示した 15 を値にするとかもあります。。。
チオチモリン さんのコードをお借りして。。。

 Sub TestX()
Dim r As Range
For Each r In Range("A1:A6")
    r.Offset(, 1).Value = WorksheetFunction.Round(r.Value / 1000, 0)
    r.Offset(, 2).Value = Round(r.Value / 1000, 0)
    r.Offset(, 3).Value = Round(r.Value, 0)
    r.Offset(, 3).NumberFormat = "###,"
    r.Offset(, 4).Value = r.Offset(, 3).Text
Next
End Sub
(SoulMan) 2020/05/07(木) 21:22

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.