ネットで探してみたのですが、計算結果を四捨五入して特定のセルを
返すにはどうしたらいいのでしょうか?

Sub hokangosa()

Dim ZPS As Double
Dim ZPOS As Double
Dim DMN As Double
MsgBox (" >>> 補間誤差自動計算 <<< ")
MsgBox (" >>> 初期値入力します <<< ")
ZPS = InputBox(">>> ステップを入力してください<<<")
ZPOS = Sheet1.Cells(22, 4).Value
DMN = ZPOS / ZPS
Sheet1.Cells(23, 6).Value = DMN
End Sub

ここでDMNの値を四捨五入したいです。

またこれとは別に切上げ、切捨ても教えていただけるとありがたいです。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

DMN = Application.WorksheetFunction.Round(ZPOS / ZPS, 0)


で、四捨五入
DMN = Application.RoundDown(ZPOS / ZPS, 0)
で切り捨て
DMN = Application.RoundUp(ZPOS / ZPS, 0)
で切り上げです。

引数で、対象桁を変更できます。
    • good
    • 12
この回答へのお礼

四捨五入とはいわず、worksheetFunctionという手はいろいろ使えそうですね。

ありがとうございました。

お礼日時:2007/04/19 10:36

VBAでもワークシート関数が使えますから


DMN = Application.RoundDown(ZPOS / ZPS, 1)
DMN = Application.RoundUp(ZPOS / ZPS, 1)
のように記述したらどうですか。小数点以下の桁数は変更してください
    • good
    • 2
この回答へのお礼

ありがとうございます。
なるほど、桁数の指定もできるんですね。
ありがとうございました。

お礼日時:2007/04/19 10:35

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QExcel でシート間の重複データ(Sheet1のA=Sheet2のA かつ Sheet1のB=Sheet2のB)

Excel2000です。

Sheet1のA列・B列・C列・・・にデータが入っています。
Sheet2のA列・B列・C列・・・にデータが入っています。

Sheet1のA列とSheet2のA列は、似たようなデータが入っています。
Sheet1のB列とSheet2のB列も、同様です。
C列以降のデータは、シート間で全然関係ありません。

Sheet1の行データ(A列・B列)が、Sheet2(A列・B列)にも存在しているかどうか、
を知るには、どうすればよいですか。
C列以降の列のデータは、比較する際に使いません。

つまり、
Sheet1のA = Sheet2のA
かつ
Sheet1のB = Sheet2のB
であるような行を知りたいのですが、

どうすればよいのでしょうか。

Aベストアンサー

Sheet1、Sheet2 ともに空いている列に =A1&B1 のような連結データを作り、Matchなどで比較するとか、、、

Sheet1 の E1 =A1&B1
Sheet2 の E1 =A1&B1
Sheet1 の F1 =MATCH(E1,Sheet2!E:E,0)

QEXCELでSheet2にある名前がSheet1のどこにあるのかすぐ分かる方法

EXCELでSheet2に馬の名前があります。
例えば、クイーンズルビー
Sheet1にも同じ名前がある場合
どこにあるのかSheet2のクイーンズルビー
という名前をクリックして
Sheet1のクイーンズルビーのある所にすぐ移動する方法はありますでしょうか?Sheet1のどこかにあるのは分かっているのですが、どこにあるのかは分かりません。今の所ctrl+fで入力して探しています。列の位置はCと分かっているのですが、行がどこか分からない状態です。
バージョンはEXCEL2000です。
よろしくお願いします。

Aベストアンサー

ファイル名が「Book1.xls」とします。
「Sheet2」のA3セルに「クイーンズルビー」が入力されているとします。
B3セルに「=HYPERLINK("[Book1.xls]Sheet1!$C$"&MATCH(A3,Sheet1!C:C,0),A3)」を入力します。
B3セルをクリックする事により、移動します。

QSheet2で選んで、Sheet1にスクロール表示

Sheet1にA1~D5範囲の書式が50書式あります。 
Sheet2にSheet1の50書式タイトルがあり、タイトルをクリックしたとき、.Sheet1に選んだ、書式がトップの位置に表示する方法を関数またはマクロをお知らせ下さい。

質問方法が悪かったので、簡略化しました、画像を添付致します。

☆ここをクリックするは、Sheet2です。
☆11行目のNO.3がトップの位置で下には、NO.4・NO.5と続きます。

Aベストアンサー

シート2のシート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, cancel as boolean)
cancel = true
on error resume next
application.goto worksheets("Sheet1").range("A:A").find(what:=cells(target.row, 1).value, lookin:=xlvalues, lookat:=xlwhole), true
end sub

シート2のA列には、シート1に記入してあるNo.3とかと「間違いなく確実に同じ内容で」記入しておく
シート2をWクリックすると、シート1にジャンプする。

まずは「簡略化」したそれと全く同じ内容でキチンとお手元に作成し、寄せられたそれぞれの回答でしっかり実現できることを確認してから、本番は自力で頑張ってください。




#補足
「うまくいかない」だけじゃ、いったい何が気に入らないのかさっぱりわかりません。具体的にいったい「どーしたいのか」不明のままなんで、「どーすればよかったのか」も当然回答できません。次回からお気を付けを。


#補足
ご相談を補足して出しなおすのは全く問題ありません。が、その際には前のご相談は、必ず解決で閉じる操作を行ってください。ほっぽらかしはマナー違反です。

シート2のシート名タブを右クリックしてコードの表示を選ぶ
現れたシートに下記をコピー貼り付ける

private sub Worksheet_BeforeDoubleClick(byval Target as excel.range, cancel as boolean)
cancel = true
on error resume next
application.goto worksheets("Sheet1").range("A:A").find(what:=cells(target.row, 1).value, lookin:=xlvalues, lookat:=xlwhole), true
end sub

シート2のA列には、シート1に記入してあるNo.3とかと「間違いなく確実に同じ内容で」記入しておく
シート2をWクリック...続きを読む

Qエクセル Sheet1 セルで入力したものをSheet2のセルへ

エクセルのSheet1のセル(例えばB1)に入力した文字を、
Sheet2のセルの任意のセル(例えばA5)に自動で表示させるには
どうすればいいのでしょうか? 
Sheet2のA5のセルの中で、=Sheet1!B1 と入れても「0」に
なるだけで・・・エクセルの何の機能を使えばいいのか全然分かりません。よろしくお願い致します。

Aベストアンサー

「Sheet2のA5のセル」に、=Sheet1!B1 と入れ、「Sheet1のB1セル」に何も入っていなければ「0」と表示されるのが普通です。

「Sheet1のB1セル」に何も入っていない時に「Sheet2のA5のセル」に0を表示させたくない(空欄にしたい)ならば、「Sheet2のA5のセル」に、
 =IF(Sheet1!B1="","",Sheet1!B1)
と入力してみてください。

QExcelでSheet1,2の各合計をSheet3に総計する

月別で営業マンの営業成績を作っています。Sheet1が一月、Sheet2が二月で、それぞれ一月の合計、二月の合計とAutosumを使ってだしています。Sheet1と2の合計をSheet3に入れたいのですが、うまくいきません。どなたか教えてください。

Aベストアンサー

sheet1とsheet2、sheet3の表のレイアウトはまったく同じですか?
それでしたら、以下の方法で可能です
例)
全てのシートのレイアウトがこのようになっているとします
A   B 
1氏名 売上
2山田 200
3鈴木 300
4加藤 400

SHEET3にSHEET1・2の合計を出すには、
Sheet3のB2をクリックし、=sum( と入力
その時sheet1の見出しとsheet2の見出しをクリック(ctrlを押しながら2つのsheetとも同時に選択)
sheet1(又はsheet2)のB2をクリック
) をクリックしenter 
という風に串刺しで合計をするわけです
1つ式ができたら後はオートフィルで下にドラッグしてコピーしてやってください


また、別の方法では
合計を出したい最初のセルをクリック(例ではB2)
データメニュー→統合をクリック
集計の方法で合計を選択
統合もとの範囲・・・sheet1をクリックしB2:B4を範囲選択し追加をクリック
sheet2クリックしB2:B4を範囲選択し追加をクリック
OKをクリックでできます。
しかし、この方法ですと関数で出しているわけではないので、sheet1やsheet2の数値が変更された場合、また同じ作業をする必要が出てきます

これでお答えになってますか?

sheet1とsheet2、sheet3の表のレイアウトはまったく同じですか?
それでしたら、以下の方法で可能です
例)
全てのシートのレイアウトがこのようになっているとします
A   B 
1氏名 売上
2山田 200
3鈴木 300
4加藤 400

SHEET3にSHEET1・2の合計を出すには、
Sheet3のB2をクリックし、=sum( と入力
その時sheet1の見出しとsheet2の見出しをクリック(ctrlを押しながら2つのsheetとも同時に選択)
sheet1(又はsheet2)のB2をクリック
) をクリックしenter 
という風に串刺しで合計を...続きを読む


このQ&Aを見た人がよく見るQ&A

このカテゴリの人気Q&Aランキング

おすすめ情報