質問: excel:表示形式の変更がただちに反映されない...!? winxp,excel2002です。 業務アプリから出力したexcelのファイルのみで起きている現象なのですが、 データの書式を「ユーザ定義」で設定しても、 なぜか、その場で反映されません。 一度セルをダブルクリックしたのちにフォーカスをはずすと、 なぜか そこでパッと反映されます。 値は「2006-07-01 12:02:17」といったもの。 「ddd」と設定した時点で表示は「sat」になるはずなのに、 1セルずつ ぷちぷちダブルクリックしないと変わってくれません...。 同僚に聞くと「外部ソフトから落としたためで、手の打ちようがない」とのことですが、 どうにかこのブックを使って表示形式を変えることはできないでしょうか? お願いします!
回答: こんにちは。kenken_sp です。 文字列データとなっているとか? 特に日付部分が日本の標準的な yy/mm/dd ではなく、”-”で区切られてますし。os や excel のバージョンによっては、 コントロールパネルの日付書式の設定いかんで文字列として扱われる可能性は ありますよね。 # excel 2002 vba で 配列にいれた日付をセルに転記すると英語書式の # 文字列になるバグがありました。sp2 か sp3 で修正されましたが。 # 独自プログラム(vba含む)でセルにデータを書き込む場合は、この # ように、excel本体の動作とは違う結果になる場合が稀にあります。 適当なセルに 1 を入力してコピーし、セルを選択して形式を選択して貼り付け 「乗算」で、シリアル値に直せると思います。excel が文字列として認識して いるなら「日付・時刻」の表示形式を設定しただけでは表示は更新されません。 ダブルクリックで表示形式が有効になるのは... セルの表示形式が「標準」であれば、セルをダブルクリックで編集モードに入り、 再度確定させると値の更新があったものとして、再計算がなされます。このとき excel は値をみて、日付・時刻と自動的に認識し、設定された「日付・時刻」の ユーザー定義書式を適用するのだと思います。