− WindowsXP VB6 VBA Format関数 −
< Format関数を使用した四捨五入について >
■ 更新日 平成 15年 6月 25日 ■
個人的趣味で提供しています。上記 更新日以降に変更されている
可能性があります。最新データは、各個人で責任をもって調べて下さい。
データ内容が間違っていても苦情等はいっさい受け付けません。
| <広告 の 詳細 は 画像 を クリック して下さい> 上記 以外の お薦め便利ショップ リンク集 は こちら から |
| 個人的に便利と思ったことを、メモ帳感覚で記述 | ||
| 高額医療費対策について | 身に覚えのない請求について | |
| Windows Update 手動実行 | Windows Update 自動更新 | |
| Office製品のアップデート | 自動更新の停止方法 | |
| Windows XP 関連で便利だと思ったことを、メモ帳感覚で記述 | ||
| ネットワーク共有名の自動検索 機能 | スタートメニュー クラシック設定 | |
| XPの パフォーマンス調整 | キーボード 文字入力の表示間隔 | |
| 時計の自動調整 機能 | ネットワーク TCP/IP DNS設定 | |
| 画面テーマ クラシック設定 | エラー報告機能 停止方法 | |
| WindowsXP VB6 VBA Format関数 (四捨五入) バグ情報 | ||
| Norton AntiVirus ウイルス対策に関する情報 | ||
| インストールと 初回設定 方法 | ウイルス発見時の画面例 | |
| LiveUpdate 実行方法 | ウイルス スキャン 実行方法 | |
| スパイウェアの検索 駆除方法 (Spybot1.3の場合) | ||
| インストール/セットアップ方法 | スパイウェア検出/駆除方法 | |
| ■◆□ グルメ情報 クーポン情報 満載 |
| Windows XP と Windows 2000 で Visual Basic 6.0 の Format 関数を使用して 四捨五入 を行うと結果が異なる。 |
| ※ EXCEL 2000の VBAでも 同様の問題が発生することを確認しました。 ※ Visual Basic 5.0 で同様の現象が発生するかは 私は 未確認です。 ※ WindowsXP Home Edition または WindowsXP Professionalで発生。 ※ WindowsXP は Service Pack 1 以降 未適用の場合に発生。 Service Pack 1以降を適用していれば この現象は発生しません。 |
| Windows XP で Visual Basic 6.0 の Format関数を使用した 四捨五入 の 仕様が変更された為、Windows2000 等と 計算結果が異なり、非常に 困った経験があります。 ※ Windows 2000 等とは Windows 2000 / NT / ME / 98 / 95 ※ この問題は WindowsXP のService Pack 1 以降 を適用することにより 修正され、Windows 2000 等と同様になります。 ※ SP1 には Service Pack 1 と Service Pack 1a が存在しますが、 両バージョンで問題が解決されてることを確認しています。 |
| 問題が発生した Format() 関数の結果 (小数点以下の 数字を四捨五入する例です) Format("0.5","##0") ' 0 が結果として返ります。 Format("1.5","##0") ' 2 が結果として返ります。 Format("2.5","##0") ' 2 が結果として返ります。 Format("3.5","##0") ' 4 が結果として返ります。 丸め処理の対象となる 数値が5の場合 その1桁前の数字が 偶数で あれば 繰り下げ、奇数であれば 繰り上げられているみたいです。 銀行系???の丸め処理。VB の関数で言えば Round関数と同じ 動きだと思います。 ※ 四捨五入処理だけの事であり、Format関数には いろいろな 使用方法があり、全てと言うことではありません。ご注意下さい。 |
| 問題をプログラムで回避する場合 (例) 数値を小数点以下で 丸め処理 を行う場合は、0.5 を足して Fix 処理を すれば良いと思います。 例) Format("1.5","##0") なら Fix(1.5 + 0.5) 全ての四捨五入を上記様に修正するのが 望ましいですが、修正が 多い場合、Format("0.5","##0") で 結果が ゼロ になる場合は、 Service Pack の適用を促すのも 1つの方法だと思われます。 |
| 正常な Format() 関数の結果 (小数点以下の 数字を四捨五入する例です) Format("0.5","##0") ' 1 が結果として返ります。 Format("1.5","##0") ' 2 が結果として返ります。 Format("2.5","##0") ' 3 が結果として返ります。 Format("3.5","##0") ' 4 が結果として返ります。 |
| 四捨五入の結果が異常な場合 |
四捨五入の結果が正常な場合 |
![]() |
![]() |
【ご参考】 Format関数を使用した 0.1 から 9.9 までの 四捨五入 実行結果 |
|
| パソコン、モバイル、ソフトウェア 等々 お薦めショップサイト紹介 | ||||
| デルオンラインストア |
ソニースタイル |
|||
| ウィルコムストア |
富士通 |
パソコン工房 |
||
| エプソンダイレクト |
||||
| <広告 の 詳細 は リンク または 画像 を クリック して下さい> 上記 以外の お薦め便利ショップ リンク集 は こちら から |
||||
| ホテル・旅館・民宿 等々 都道府県別 お薦め宿泊サイト一覧 | ||||
| ■◆□ 都道府県別 お薦めゴルフ場 一覧 □◆■ | ||||
| 日本全国 大学 短大 専門学校 情報 | ||||
| この問題は Windows XP に含まれる オートメーション ライブラリの バージョンによって発生するみたいです。 ※ この問題は WindowsXP のService Pack 1 以降 を適用することにより 修正されます。 Windows XP になってから オートメーション ライブラリが 3.50 系に なっています。Windows 2000 は 2.40 系でした。 オートメーション ライブラリの ファイルバージョンは OLEAUT32.DLLを 見ることで調べることができます。 (ファイルを選択して プロパティの バージョン情報を参照のこと) ※ オートメーション ライブラリのファイル構成は OLEAUT32.DLL の 1つ だけではありません。ご注意下さい。
|
||||||||||||||||||||||
| (重要) この OLEAUT32.DLL ファイルバージョンは 私が 調べたものであり、 間違ってる場合もありますので 十分ご注意下さい。 |
||||||||||||||||||||||
| この問題は Windows XP のみで発生する、問題だと考えていました。 実際は他のOSでも発生する可能性があると言うことが発覚しました。 |
| Windows XP 上で 問題のある オートメーション ライブラリ を含んだ セットアップ プログラムを作成する。このセットアップ プログラムを 使用して Windows 2000 等へ プログラムをインストールする。 問題があるモジュールがインストールされる為、上記 四捨五入の 問題が発生するみたいです。 Format("0.5","##0") で 結果が ゼロ になる場合 メッセージを 出す処理を入れていて 発覚しました。 何のプログラムをインストールして その様になったのかは不明ですが、 Windows XP でセットアップ プログラムを作成する方は ご考慮下さい。 オートメーション ライブラリは、いろんなところで使用されており また セットアップ プログラム なので Visual Basic 関連で作成する セットアップ プログラムだけに関係する話ではないと思われます。 ※ EXCEL 2000 の VBA (マクロ処理)で同様の問題が発生する 事は確認しました。 |
| 検索キーワード |
| Microsoft VisualBasic VisualStudio 5.0 6.0 マイクロソフト ビジュアルベーシック VB6CHKPG ビジュアルスタジオ 四捨五入 丸め処理 Format関数 Round関数 OLEAUT32.DLL EXCEL Access Office 2000 XP VB5 VB6 VBA エクセル アクセス オフィス |
2003 - 2004 TOYO All rights reserved.