グラントはワークシートにセルを持っており、誰かがセルに入力し始めると、入力した内容がセルに添付されたコメントになってしまうことを望んでいます。セル自体は空白のままにする必要がありますが、コメントには入力されたものがすべて含まれている必要があります。

このタスクを実行する唯一の方法は、マクロを使用することです。

Excelのイベントハンドラー機能を使用して、セルが変更されるたびにトリガーされるマクロを作成できます。変更されたセルがたまたまコメントを関連付けるセルである場合は、セルの内容をコメントに転送して、セル自体から削除できます。次の短いマクロはそれを行います:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim rCell As Range     Dim sTemp As String

Set rCell = Range("B4")

If Not Intersect(Target, rCell) Is Nothing Then         sTemp = rCell.Value         rCell.ClearComments         If Len(sTemp) > 0 Then             Application.EnableEvents = False             On Error Resume Next             rCell.AddComment             rCell.Comment.Text Text:=sTemp             On Error GoTo 0             rCell.ClearContents             Application.EnableEvents = True         End If     End If End Sub

これはイベントハンドラーであるため、影響を受けるワークシートのコードモジュールに追加する必要があることに注意してください。この場合、コメントへの移動コードは、セルB4で変更が行われたときにのみトリガーされます。このアドレスは、必要に応じてコードで変更できます。

このマクロは、ユーザーがセルB4に何かを入力し終えたときにのみトリガーされることにも注意してください。ユーザーが入力を開始してもトリガーされません。したがって、実際のデータ入力は、コメント自体ではなく、セルB4で引き続き発生します。さらに、誰かがセルB4に何かを入力すると、セルの内容をコメントに移動する前にマクロがコメントを削除するため、既存のコメントはすべて失われます。

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

このヒント(13511)は、Microsoft Excel 2007、2010、2013、および2016に適用されます。