重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

Excel2013を使い始めました。セルにコメントを挿入し、コメントの書式設定から、自動サイズ調整にチェックを入れると、コメント枠サイズが適切な大きさになります。問題は、そのコメントに文字を追加編集しようとする時です。文字行の最後をクリックし文字を追加するのですが、コメント枠が自動で大きくなりません。コメント枠からはみ出している感じです。同じコメント内の、他の行をクリックしたり、他のセルをクリックした瞬間に、コメント枠の大きさが自動サイズに変化し、追加した文字が見えるようになります。その為、文字入力中は、キーインしている文字が見えない為、漢字変換の状況がわからないので、誤変換させてしまいます。「オプション設定のリアルタイムのプレビュー表示機能を有効にする」は、チェックが入っているのですが。Excel2003の時は、入力に合わせて、枠が大きくなっていました。

A 回答 (2件)

> 標準モジュールでも、Worksheet_SelectionChangeは使えるの


使えませんし、イベントも用意されていないと思います。
標準モジュールには、対象のオブジェクトを持っていないので、
対象を必ず指定する必要があります。
https://oshiete.goo.ne.jp/qa/6451360.html
http://www9.plala.or.jp/siouxsie/excel/date06.html


コメント編集後にマクロを実行するだけなら、標準モジュールに
以下のマクロを登録しショートカットキーを用意すれば、たぶん
[自動サイズ調整]はしてくれると思います。
コメント編集中はマクロの実行ができないので、[ Tab ]キーや
[ Esc ]キーでコメントの編集状態を解除し、コメントのみ選択
した状態にしてからマクロを実行します。

Sub コメントの自動サイズ調整を設定()

 Dim cm As Comment
 Dim s As String
 s = ActiveCell.Address

  With Range(s).Comment
   .Shape.Select
    With Selection
     .AutoSize = True
    End With
   .Visible = False
  End With

End Sub


以下のマクロは、セルにコメントがある場合に使います。

Sub コメント編集直前()

 Dim cm As Comment
 Dim s As String
 s = ActiveCell.Address

 If ActiveCell.Comment Is Nothing Then
  MsgBox "コメントはありません。"
 Else
  With Range(s).Comment
   .Visible = True
   .Shape.Select
    With Selection
     .Width = 150 'コメントの幅を指定
     .AutoSize = False
    End With
  End With
 End If
End Sub

これを実行すると、コメントが150(5cmちょっと)の幅で表示し、
編集直前の状態になります。
[ Esc ]キーでコメントから抜けて[ Shift+F2 ]キーでコメントの
編集状態にするか、リボンの[校閲]タブにある[コメントの編集]を
クリックしてからコメントを入力します。
    • good
    • 0
この回答へのお礼

マクロコード作成ありがとうございます。これら2つのコードを標準モジュールに記述しておき、
①コメントの挿入⇒ESCキーでコメント枠の選択状態⇒SUB コメント編集直前()実行で、コメント枠を大きくした後、文字を入力する。⇒ESCキーでコメント枠の選択状態⇒Sub コメントの自動サイズ調整()でサイズ自動にする。
②コメント修正時は、セルを選択して⇒SUB コメント編集直前()実行で、コメント枠を大きくした後、文字を追加修正する⇒ESCキーでコメント枠の選択状態⇒Sub コメントの自動サイズ調整()でサイズ自動にする。
マクロをショートカットキーに設定して試したところ、うまく使えました。

お礼日時:2020/01/11 14:03

[自動サイズ調整]にチェックを入れないで、コメントへの入力を


したほうが良いと思います。

Excel2003のときと違い、Excel2007以降だと図形の描画エンジン
が変わったことで、コメントなどの古い形式への対応が変わった
のかもしれません。質問にあるような入力中での自動サイズ調整
が行われずに、コメントの確定(他セルを選択)したときになって
サイズ調整が行われるようになったようですね。

コメントの編集で[自動サイズ調整]へのチェックの有無をVBAで
切り替える方法があるのか知りませんが、何らかの方法で編集を
しているときにはチェックを外し、他のセルに移動したときには
チェックが付くような設定にするしかないと思います。

別の対処方法としては、一括でチェックを入れたり外したりする
設定ならば、ネット上に多くのマクロが紹介されていますので、
これを活用する方法もあるかと思います。
https://dz11.hatenadiary.jp/entry/2017/11/15/093 …
http://amlaid.air-nifty.com/blog/2013/10/excel-8 …
http://techoh.net/customize-excel-comment-by-vba/
    • good
    • 0
この回答へのお礼

回答ありがとうございます。図形の描画エンジンが変わったのが原因で、オプション設定等の問題ではないことが解りました。[自動サイズ調整]のチェックが外れていると、枠内で改行されますが、入力文字が見えるので、誤変換することは無くなりそうです。編集直前に、手動でコメント枠を大きくし(自動サイズ調整OFF)、編集入力後に他のセルを選択する⇒Worksheet_SelectionChangeで、全てのコメントについて自動サイズ調整をTRUEにするマクロを作れば、できそうです。ただし、全シートにマクロを記述する必要があり、シートを追加した時に忘れたりしそうです。標準モジュールでも、Worksheet_SelectionChangeは使えるのでしょうか。

お礼日時:2020/01/10 22:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!