« あるあるエラー:オブジェクト変数 | トップページ | 虫食い2 »

2011年9月10日 (土)

セルの高さの自動変更をなくす

手動でもVBAでも
セルに複数行の文字列を入力すると
セルの高さが自動で変更されます。

何十行になる文字列を入力すると
1つのセルで画面の縦一杯になってしまって
とても見にくく扱いづらくなることがあります。

Excel本来の使用目的は
そのようなことではないのでしょうがないですが。

実は、
手動で高さを変更したことがあるセルは、
複数行を入力したときでも
セルの高さは自動で変更されません。
これは仕様です。
参:Wrap text does not adjust row height in Excel

この仕様を使って、
この複数行を入力したとき
セルの高さの自動変更をなくしたいと思います。

つまり、
シートを挿入したらすぐに
すべてのセルの高さを変更すれば
それ以降セルの高さが自動で変更されることはなくなる
ということです。

コードはこちら

セルの高さの自動変更をなくすコード:

Sub macro110910a()
'セルの高さの自動変更をなくす

    Sheets.Add
   
    '標準の高さに変更
    Cells.RowHeight = ActiveSheet.StandardHeight
   
    '試しに複数行を入力
    Cells(1, 1) = "aaaaaaaaaaaaaaaa" & Chr(10) & _
        "aaaaaaaaaaaaaaaa" & Chr(10) & _
        "aaaaaaaaaaaaaaaa" & Chr(10) & _
        "aaaaaaaaaaaaaaaa" & Chr(10) & _
        "aaaaaaaaaaaaaaaa" & Chr(10) & _
        "aaaaaaaaaaaaaaaa"
       
End Sub

上のコードで挿入されたシート:
Vba20110910a

セルの表示と実際の文字列を見るとわかるように
セルの高さは自動で変更されていません。

これを試行しているときに、

セル内の改行はあっても
[セルの書式設定]で[折り返して全体を表示する]のチェックを外すと
表示上は改行がなくなる。

ということを知りました。

|

« あるあるエラー:オブジェクト変数 | トップページ | 虫食い2 »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: セルの高さの自動変更をなくす:

« あるあるエラー:オブジェクト変数 | トップページ | 虫食い2 »