数式の結果をコメントに配置する(Microsoft Excel)
ボブは、数式を記述して、セルではなくコメントで答えを得ることができるかどうか尋ねました。簡単に言えば、いいえ、数式でそれを行うことはできません。ただし、マクロを使用して実行できます。たとえば、次のマクロは2つのセル(A1とB1)の内容を追加し、その結果をセルC1に添付されたコメントに貼り付けます。
Sub MakeComment() With Worksheets(1).Range("C1").AddComment .Visible = True .Text "Total of cell A1 plus cell B1 is equal to " & _ ([A1].Value) + ([B1].Value) End With End Sub
セルの範囲でマクロを実行する場合は、別のアプローチが必要です。次のマクロは、選択範囲内のすべてのセルをループします。セルに数式が含まれている場合、マクロはそのセルに添付されたコメントに値(数式の結果)を配置します。
Sub ValueToComment() Dim rCell As Range For Each rCell In Selection With rCell If .HasFormula Then On Error Resume Next .Comment.Delete On Error GoTo 0 .AddComment .Comment.Text Text:=CStr(rCell.Value) End If End With Next Set rCell = Nothing End Sub
選択範囲内のセルをループしているときに、セルの1つに数式と既存のコメントがある場合、コメントは削除され、数式の結果を含む新しいコメントに置き換えられます。
その後、セルの値と同じ番号のコメントが表示されます。 CStrの代わりに、Format関数を使用して、任意の方法で値を表示することもできます。
特定のセルの内容を更新するたびにコメントを変更するマクロを作成することもできます。たとえば、誰かがセルC11に変更を加えるたびに、そのセルにあるものすべての結果をセルF15に添付されたコメントに配置したいとします。次のマクロはまさにそれを行います:
Private Sub Worksheet_Change(ByVal Target As Range) Dim sResult As String If Union(Target, Range("C11")).Address = Target.Address Then Application.EnableEvents = False Application.ScreenUpdating = False sResult = Target.Value Target.ClearContents With Range("F15") .ClearComments .AddComment .Comment.Text Text:=sResult End With Application.EnableEvents = True Application.ScreenUpdating = True End If End Sub
誰かが数式(または値)をセルC11に入力すると、その数式(または値自体)の結果がセルF15に添付されたコメントに配置されます。これはイベントによってトリガーされるマクロであるため、機能するワークシートのコードウィンドウに入力する必要があります。
最後に、マクロで列全体を監視することもできます。次のマクロは、前のマクロと同じように、ワークシートのChangeイベントを使用します。ただし、列Fで変更が行われた場合、およびその列の1つのセルが変更された場合にのみ、アクションが開始されます。
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Cells.Count > 1 Then Exit Sub If Target.Column <> 6 Then Exit Sub Dim x As String Application.EnableEvents = False If Target.HasFormula Then x = Evaluate(Target.Formula) Else x = Target.Text End If Target.ClearComments If Target.Text = "" Then Application.EnableEvents = True Exit Sub End If Target.AddComment x Target = "" Application.EnableEvents = True End Sub
ユーザーが列Fの単一のセルに変更を加えると、マクロは入力された内容の結果を取得し、そのセルに添付されたコメントに配置します。その後、セルの内容が削除されます。
注:
このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。
このヒント(13038)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。
link数式の結果をコメントに配置。