勝手に折り返して全体を表示しない|マクロVBA
[セルの書式設定]ダイアログ-[配置]タブ-[文字の制御]欄に[折り返して全体を表示する]というチェックボックスがあります。
[折り返して全体を表示する]チェックボックスがOnになっていると、セルにたくさんの文字列が入力されているときなどに、文字列がセル内で改行されて表示されるようになります。
セルの幅が広くないときなどにセル内改行されると、非常に見づらい状態になることもあり、自動的に折り返して全体を表示してほしくないという要望が出てくることもうなずけます。
原因は、[折り返して全体を表示する]チェックボックスが、自動的にOnになるようなケースがあるということでしょう。
例えば、改行を含んだ文字列をコピーアンドペーストしたときや、セル内改行するために[Alt]+[Enter]キーを利用したときなどです。このようなときに[折り返して全体を表示する]チェックボックスは自動的にOnになります。
この自動的にOnになる機能を止められればいいのでしょうが、残念ながらこの仕様は、オプション設定などで変えられるようなものではなさそうです。
ただし一つの解決策として、イベントプロシージャを利用して[折り返して全体を表示する]チェックボックスを、強制的にOffにしてしまうという方法が考えられます。
▼セルの値変更後に折り返して全体を表示するをOffにするイベントプロシージャ
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Target.WrapText = False
End Sub
Workbook_SheetChangeイベントプロシージャは、セルの値などが変更されたときに実行されるイベントプロシージャです。
勝手に[折り返して全体を表示する]チェックボックスがOnにならないようにしたいExcelファイルに、このWorkbook_SheetChangeイベントプロシージャを作成しておけば、勝手に折り返して全体を表示されないようになります。
やってることは、更新されたセルのWrapTextプロパティをFalseにすることだけです。
[Alt]+[Enter]キーが押されると、WrapTextプロパティがTrueになり、折り返して全体を表示するようになってしまうわけですから、イベントプロシージャで強制的にFalseにしてしまうという考えです。
▼サンプルファイル(003575.xls 42KByte)ダウンロード
サンプルファイルには上記のイベントプロシージャが作成してあります。
文字を入力して、[Alt]+[Enter]でセル内改行をしても、[折り返して全体を表示する]チェックボックスがOnにならないことなどをご確認ください。