• 締切済み

(Excel) NumberFormatLocal="@" かつ WrapText=True のときEntireRow.AutoFit が無効。対処方法は?

標記の件、質問です。 Excel (2003) で、Cell の .NumberFormatLocal プロパティが "@" (文字列)で、かつ、.WrapText (列幅で折り返し) プロパティ True のとき、当該のCellに長い文字列を投入すると、.EntireRow.AutoFit (行の高さを自動調整) が無効となります。 この動作は仕様なのでしょうか? (文字列扱いにするのは、文字列の先頭が「=」のときに計算式として扱われるトラブルを防止する趣旨です) セルに格納された値が損なわれることはないのですが、このままでは印刷や内容確認 (視認) に支障があります。 文字列の先頭にシングルクォートを付加する、以外の回避手段をご存知の方、ご教示ください。 よい方法がなければ、文字列の先頭が「=」の場合のみ「'」を付加することになりそうですが......。 環境 : MS Excel 2003 (下位バージョンでも同様?)

みんなの回答

  • popesyu
  • ベストアンサー率36% (1782/4883)
回答No.1

「AutoFitが無効になる」の意味が分からないのですが。メゾットなので実行してしまえばそれだけかと思います。 .WrapText がfalseの状態では幾らAutofitを実行しても効果ないでしょうが、trueの状態ならそのつど動きましたよ。2002と2003でやってみましたが。 文字列を入力した後、Autofitするとかではダメなのでしょうか。

noname#7749
質問者

お礼

書き足らない部分がありましたので、追加します。 > 再現するデータを使用した場合 の場合でも、NumberFormatLocal = "@" に変更せず、規定値 ("G/標準") のままであれば、AutoFitしなくとも、行の高さは勝手に変更されるようです。  どうやら、NumberFormatLocal = "@" ではなく、シングルクォートを使う他なさそうな状況ですが......。

noname#7749
質問者

補足

コメントありがとうございます。 > Cellに長い文字列を投入すると と書きましたが、単に列幅に収まらない長い文字というだけの条件ではないようで、再現条件がどうもはっきりしません。 文字列には、マルチバイト文字 (日本語) 改行コード (LF)、HTMLタグ等が含まれており、長さは600 ~ 800字程度あります。 単純に 「aaaaaaaaaaaaaaaaaaaaa<LF> aaaaaaaaaaaaaaaaaaaaa<LF> aaaaaaaaaaaaaaaaaaaaa<LF> aaaaaaaaaaaaaaaaaaaaa」(一例) といったテストデータでは再現しませんでした。 再現するデータを使用した場合、Excel 2000 でも同様の動作 (Autofitの実行有無に関らず、行の高さは規定値のまま。見かけ上、「###」と表示される) でした。

関連するQ&A

専門家に質問してみよう