ExcelVBA初心者です。


文字を入力していき、ある文字数をオーバーするか改行コードがくると
結合したセルの行幅を自動で調整するという処理をしたいのですが、うまくいきません。
どなたか教えていただけないでしょうか。

【詳細内容】
ある結合したセルの1行のMAX文字数を5として、
実際に入力すると
文字数が6以上になるか、
Alt + Enter(改行コード)が発生すると、
(改行して)自動で行幅を増やして、
その後の文字を入力する。
文字を消せば行がデフォルトの幅に戻る。

【例】
「ABCDEFG改HIJ改KLMNOP」があったとします。
(改→改行コード)
これを↓このように自動で改行して表示させたいです。

ABCDE
FG
HIJ
KLMNO


どなたか詳しい方教えていただけないでしょうか。
よろしくお願い致します。

回答の条件
  • 1人50回まで
  • 登録:
  • 終了:2011/06/19 15:45:07

回答0件)

回答はまだありません

  • id:taknt
    無理かな。
  • id:SALINGER
    なんで無理かと言うと、入力している状態では任意のイベントが起きないから。
  • id:doncho
    入力が全部完了しないとできません。
    Worksheet_Changeイベントかユーザーフォームを使用する。
    という方法になると思います。
    Changeイベントからだと変更の起きたセルから該当列を一括で再処理させるとか・・・。
    行数によってはすごく重たくなりそうです。
    入力セルを別に設けるとか、ユーザーフォームを使用するなど
    入力値をコントロールする方法がスマートだと思います。
  • id:airplant
    「結合したセル」は、必須条件なんでしょうか?
    結合さえしていなければ、元々のExcelの機能で要望している通りの動作になりますよ。
    ただし、入力中は幅が広がらず、確定したときに広がります。
    (全くの的外れでしたら、ごめんなさい)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません