Access 2013で正常に動作していたVBAプログラムをAccess 365へ移行した際、割り算の結果に小数が含まれると「15?5」や「0?1」のような表示になってしまうケースがあります。整数計算は正常でも小数点だけが「?」に置き換わる場合、計算処理そのものではなく表示環境や文字コード、地域設定に原因がある可能性が高いです。本記事ではAccess 365で発生する小数点表示異常の原因と確認ポイントを解説します。
発生している現象の特徴
次のような症状が発生している場合、計算ロジックよりも表示形式の問題である可能性があります。
| 計算式 | 期待値 | 実際の表示例 |
|---|---|---|
| 31/2 | 15.5 | 15?5 |
| 3/30 | 0.1 | 0?1 |
| 2/31 | 0.064516… | 6?45161290322581E-02 |
いずれも小数点部分だけが「?」へ置き換わっているため、演算結果自体は正しく計算されているケースが多く見られます。
最も多い原因は小数点記号の設定
AccessやOfficeはWindowsの地域設定を参照して数値を表示しています。
Windowsの地域設定やOfficeの言語設定が変更された場合、小数点記号「.」と桁区切り記号「,」の認識が変わることがあります。
特にOffice 365への移行後は、以前の環境と地域設定が異なり表示だけが崩れるケースがあります。
コントロールパネルの「地域」→「追加の設定」で小数点記号が正常に設定されているか確認しましょう。
フォントや文字コードの問題も疑う
フォームやレポート上でのみ発生している場合は、フォントの問題も考えられます。
特殊なフォントや旧環境から引き継いだフォームでは、小数点記号が正常表示されず「?」になることがあります。
- MS UI Gothic
- Meiryo
- Yu Gothic UI
など標準フォントへ変更して確認してみましょう。
VBAでのデータ型も確認する
計算結果を文字列へ変換している場合は、変換処理にも注意が必要です。
例えば次のようなコードを使用している場合です。
- CStr()
- Format()
- FormatNumber()
Access 365では地域設定の影響を受けるため、表示結果が変わることがあります。
特にFormat関数で独自フォーマットを指定している場合は再確認が必要です。
Access 2013から365移行時によくある問題
Office 365では内部的な表示エンジンや言語パックが更新されています。
そのためAccess 2013で問題なかったフォームやレポートでも、365環境では表示不具合が発生することがあります。
- 地域設定の変更
- Office言語パックの違い
- 64bit版への移行
- 古いActiveXコントロールの影響
計算結果自体が誤っているのか、表示だけがおかしいのかをまず切り分けることが重要です。
確認方法の具体例
イミディエイトウィンドウで次のように実行してみます。
Debug.Print 31 / 2
ここで15.5と表示される場合、VBAの計算処理は正常です。
フォームやテキストボックスだけで「15?5」と表示される場合は、表示設定やフォント設定の問題である可能性が高くなります。
まとめ
Access 365で割り算結果の小数点が「?」になる現象は、演算エラーではなく表示設定や地域設定、フォント設定が原因となるケースが多く見られます。まずはWindowsの小数点記号設定、Officeの言語設定、フォームのフォント、Format関数の使用箇所を確認しましょう。VBAのイミディエイトウィンドウで計算結果を直接確認することで、計算処理と表示処理のどちらに問題があるか切り分けることができます。


コメント