重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

フォームのテキストボックス「text2」のコントロールソースに
=roundup([text1]/1.05,0)
と書いて実行したら「#NAME?」エラーになりました。試しにクエリに
field2:roundup([field1]/1.05,0)
と書いて実行したら、実行時に「式に未定義関数'roundup'が」あります」とエラーになりました。

ヘルプを見ると「この関数からエラー値 #NAME? が返された場合、msowcf.dll をセットアップしなければならないことがあります。」と書かれています。

検索したら、このファイルは「C:\Program Files\Microsoft Office\Office」内にありました。
モジュールの参照設定で上記ファイルを登録したところ「Microsoft Web Components Function Library」にチェックが付きました。
改めてフォームとクエリを実行しましたが結果は同じでした。

どうすればROUNDUP関数を使えるようになるでしょうか。
ACCESS2000です。よろしくお願いします。

A 回答 (5件)

>「msowcf.dll をセットアップ」すれば使えるような事が書いてあるんですが



「msowcf.dll をセットアップ」のヘルプの抜粋
「それらの関数を含むスプレッドシートを Web ブラウザで開いたときに、エラー値 "#NAME?" が表示されます。」
これは「Webページに表示する場合にのみエクセルのワークシート関数を使うことができる。」ということです。
Access上では使えないので#1の回答になりました。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
Accessでは使えないって事ですね?!
ハッキリしたので、皆さんに教えていただいたように、IIfとの組み合わせでやってみます。

ってゆーか、実は、自分の用事ではなくて、別の方の質問で「税込み金額から税抜き金額を求める」というのがあって、それを自分でテストする中で、切り上げが必要だと分かったので、Roundupをしたかったのです。
でも、今回質問した事で、勉強になりました。

お礼日時:2004/10/18 12:29

無ければ作るということで作ってみました。


Public Function roundup(number As Double, n As Integer) As Double
Dim f
number = number * (10 ^ n)
f = number - Fix(number)
number = Fix(number) + IIf(f <> 0, Sgn(number), 0)
roundup = number / (10 ^ n)
End Function
仕様は、エクセルのroundupと同じです。
モジュールの中にコピペして下さい
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
わざわざ作っていただいたんですね~!参考にさせていただきます。
ヘルプに「msowcf.dll をセットアップ」すれば使えるような事が書いてあるんですが、これについては何かご存じないですか?

お礼日時:2004/10/18 11:50

小数点以下の数字を切り上げるには (INT 関数)


http://support.microsoft.com/default.aspx?scid=k …

こちらが参考になると思います。

ちなみに、VBAの Round 関数は銀行型の丸めの処理になります。

参考URL:http://support.microsoft.com/default.aspx?scid=k …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
切り上げの具体的な方法、参考になりました。
Roundup関数が使えないとはっきり判明すれば、利用したいと思います。
(ところで銀行型の丸め処理って、普通のとどう違うんでしょうか。)

ヘルプに「msowcf.dll をセットアップ」と書いてあるんですが、これについては何かご存じないですか?
僕がやった方法ではなぜ使えないんでしょうか(>_<)

お礼日時:2004/10/18 11:48

AccessにRoundup関数はありません。


=Int([field1]/1.05+0.999)
としてください。

どうしてもRoundupにしたい場合ですがモジュールにて
Function MyRoundup(n As Double,k As Integer)
MyRoundup = Int(n * 10^k + 0.999 ) / 10^k
End Function
として、クエリ上に
=MyRoundup([field1]/1.05,0)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ないんですか?ヘルプに「msowcf.dll をセットアップ」と書いてあるんですが、これについては何かご存じないですか?

お礼日時:2004/10/18 11:43

RoundUP関数というのは使ったことないのでわかりませんが


ヘルプにRoundUP関数は「ワークシート関数」と付いているので
フォームでは使えないかもしれないような気がします...
(データアクセスページで使える関数なのかな?)

切り上げでしたらRound関数できると思いますが、どうでしょうか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
そうそう、ワークシート関数って書いてあるんですよね・・・何なんでしょうね(^_^;)

Roundは~.dllがなくても使えるみたいですが、四捨五入じゃなくて切り上げをやりたいんですよ・・・

それとも「RoundとIIfを組み合わせて切り上げを実現できるよ」とおっしゃっているのでしょうか?

お礼日時:2004/10/18 11:38

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