Peggyのワークシートには、コメントが関連付けられたセルがいくつかあります。彼女がこれらのセルの1つを右クリックすると、コメントを編集するために、表示されるコンテキストメニューから[コメントの編集]を選択できます。コメントが以前のExcelでのセッションで作成したものである場合、コメントがワークシートの他の場所、場合によっては数画面離れた場所で開くことも珍しくありません。ペギーは、コメントをセルの横に表示する方法があるかどうか疑問に思っています。

この状態はいくつかの原因で発生する可能性があります。たとえば、以前にコメントを編集しているときに、コメントボックスの境界線をクリックして、ワークシートの別の場所にコメントをドラッグした可能性があります。これを行った場合、Excelはコメントが移動された場所を記憶し、記憶された場所に常に表示します。

もう1つの一般的な原因は、データに対して何らかのフィルタリングを行うことです。これにより、フィルターが設定されている間、行または列の一部が非表示になります。次に、フィルタリングされたセルのコメントを編集すると、コメントが元の場所から、画面に表示されている行または列に関連付けられている新しい場所に効果的に「移動」されます。後でフィルターを削除してコメントを編集しようとすると、以前に編集された場所が記憶され、そこで新しい編集の機会が発生します。

どちらの場合も、通常の解決策は、ただニヤリと笑って耐えることです。つまり、セルを現在の場所から目的の場所に手動で移動します。

ただし、多数のセルでこの問題が発生した場合は、すべての手動移動が非常に面倒になる可能性があります。その場合は、マクロを使用して移動を行うことをお勧めします。

Sub MoveComments1()

Dim cmt As Comment

For Each cmt In ActiveSheet.Comments         With cmt           .Shape.Top = .Parent.Top           .Shape.Left = .Parent.Offset(0, 1).Left         End With     Next cmt End Sub

このマクロは、ワークシート内のすべてのコメントを移動して、コメントが添付されているセルの左上隅と同じになるようにします。これにより、コメントがセルのすぐ横に配置されます。これは、コメントが必要な場所です。

ブック全体のすべてのコメントを調整し、各コメントボックスを「自動サイズ変更」する場合は、マクロで次のバリエーションを使用できます。

Sub MoveComments2()

Dim wbk As Workbook     Dim wks As Worksheet     Dim cmt As Comment     Dim rngC As Range     Dim lArea As Long

Set wbk = ActiveWorkbook

On Error Resume Next

For Each wks In wbk.Worksheets         For Each cmt In wks.Comments             With cmt                 .Shape.TextFrame.AutoSize = True                 If .Shape.Width > 200 Then                     lArea = .Shape.Width  .Shape.Height                     .Shape.Width = 200                     .Shape.Height = (lArea / 200)  1.1                 End If                 .Shape.Top = .Parent.Top                 .Shape.Left = .Parent.Offset(0, 1).Left             End With         Next cmt     Next wks End Sub

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(9703)は、Microsoft Excel 2007、2010、および2013に適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。