Access2002
質問するのは初めてです。よろしくお願いします。
気になる現象があります。
ただし、結論から言うと次の現象の回避策は解決しています。
Me![フィールド名].Format = "#,##0;[赤]-#,##0;[青]0;[白]…"
上記コードで書式を変更すると、書式が次のようになってしまいます。
0;-0
次の書式をVBAではなく手作業でプロパティに登録した場合
#,##0;[赤]-#,##0;[青]0;[白]…
イミディエイトには次の文字が表示される。
#,##0;[Red]-#,##0;[Blue]0;[White]…
イミディエイトに表示されたこの書式をプロパティに手作業でコピペすると、次の通りなってしまう。
#,##0;"[Red]-"#,##0;"[Blue]"0;"[White]…"
実際の表示は、[Blue]0 となる。
この現象をご存知の方はおられますか?
そもそも次のコードは記述が間違っているのでしょうか?
Me![フィールド名].Format = "#,##0;[赤]-#,##0;[青]0;[白]…"
ちなみにExcel2013では問題なく動作しました。[白]…は無視されるようです。
ただし漢字が英文字に変わるのは同じです。
Range("A1").NumberFormat = "###0;-###0"
Debug.Print Range("A1").NumberFormat
イミディエイト:###0;-###0
Range("A1").NumberFormatLocal = "#,##0;[赤]-#,##0;[青]0;[白]…"
Debug.Print Range("A1").NumberFormat
イミディエイト:#,##0;[Red]-#,##0;[Blue]0;[White]…
※なお、回避策は次のようなコードにしました。
' モジュールレベル
' String 変数や定数だと書式が意図したものにならなかった。
Dim Format_Cm As Variant
------------------------------------------------------------------
' フィールドのEnterイベント
' #,##0;[赤]-#,##0;[青]0;[白]…が登録済みの書式を変数に退避
Format_Cm = Me![フィールド名].Format
' フィールドに式を入れて計算結果を出せるようにするためコンマのない書式に変更する。なお、"###0;-###0"であれば次のようなコードでも問題は発生しなかった。
Me![フィールド名].Format = "###0;-###0"
------------------------------------------------------------------
' Exitイベントで元の書式に戻す。
Me![フィールド名].Format = Format_Cm
なお、"###0;-###0"であれば次のようなコードでも問題は発生しなかった。
Me![フィールド名].Format = "###0;-###0"
上記の部分は、間違いでした。
表示上と目的上問題ない状態になっていただけで、書式プロパティは意図した通りになっていなかった。
イミディエイトで見ると 0;-0 となっていた。
過去ログ2年以上前が最後って、見てる人居ないかもですけど…
なお、"###0;-###0"であれば次のようなコードでも問題は発生しなかった。
Me![フィールド名].Format = "###0;-###0"
上記の部分は、間違いでした。
↑ここは無視してください。昨日投稿したとき寝不足で疲れて頭が回らなかったのか、そもそもこの部分は書式が不要だった。
Me![フィールド名].Format = ""
よく確認せずに投稿してグダグダになってしまった。
間違い→Me![フィールド名].Format = ""
訂正→Me![フィールド名].Format = "0"
ツイート | ![]() |