Excel VBA

【Excel VBA】【マクロ】【Tips】数式が入ったセルにコメントをつけ、数式をコメントに出力

こんにちは!Lenocoです。本日も見てくださりありがとうございます。

今回もコメントについてのTips回です!!!

数式をコメントに出力するツール

前回、コメントの枠をカスタムする方法をご紹介しましたが、
今回はそれを応用した便利ツールをご紹介します。

とあるExcelのレッスンに行ったときです。
たくさんの生徒がいる教室で、前の大きいスクリーンにExcelの画面を出していました。
先生が数式の入ったセルにカーソルを当て、次の瞬間、
そのセルに入っている数式がコメント枠にパっと大きい文字で現れました。

↓こんなイメージです。C3セルにカーソルを合わせたらこんなコメントがパっと現れました。

えぇー不思議!と思っていたら、どうやらその機能、マクロで作ったものらしいのです。
(確かに、上の数式バーでは文字サイズを大きくしたりできないので、スクリーン上で見づらいですよね)
なら、自分でも作ってみようと思い、作ってみました!できました!
(※「.Comment」の部分でコードが止まってしまうというご指摘があり、一部修正しました。)

コード

Sub DisplayFomulaOnComment()
    Dim targetCell As Range
    Set targetCell = ActiveCell

    '選択されているセルに数式が入っているかどうか
    If targetCell.HasFormula = True Then
        'コメントが設定されているかどうか
        If targetCell.Comment Is Nothing Then
            'コメントが設定されていなければコメントを作成する
            With targetCell
                .AddComment
                With .Comment
                    .Visible = True
                    .Text Text:=targetCell.Formula
                    With .Shape
                        .TextFrame.AutoSize = True                          'サイズ自動調整
                        .AutoShapeType = msoShapeFlowchartAlternateProcess  '形状を角丸四角形に変更
                        .Line.ForeColor.RGB = RGB(128, 128, 128)
                        .Fill.ForeColor.RGB = RGB(240, 240, 240)            '背景色
                        .Placement = xlMove                                 'セルに合わせて移動する
                        With .TextFrame.Characters.Font
                            .Size = 22              'フォントサイズ
                            .Name = "Meiryo UI"      '書式
                            .ColorIndex = 3         '色(赤)
                        End With
                    End With
                End With
            With
        Else
            '数式が入ったセルで、コメントが入っているなら削除する
            targetCell.ClearComments
        End If
    Else
        '数式が入っていないセルは何もしない
    End If
End Sub

数式が入ったセルにカーソルをあてて、上記のコードを実行してみてください。
コメント枠に大きい文字で数式が表示されるかと思います。

コードの説明

まず「If targetCell.HasFormula = True Then」で、数式が入っているセルのみIf文に入ります。
数式が入っているセルだった場合は「Else」に移動し、特に何も処理せず終了します。
さらに「If targetCell.Comment Is Nothing Then」で、コメントが設定されていない場合にIf文に入ります。
コメントが設定されていた場合は「Else」に移動し、コメントを削除して処理を終了しています。
「数式が入っている かつ コメントが設定されていないセル」だった場合に次の処理に移ります。
「targetCell」の中の「.AddComment」で、セルにコメントを挿入しています。
「With .Comment」~「End With」は、上記で挿入したコメントについての指示をしています。
「.Visible = True」で、コメントを表示状態にしています。
「.Text Text:=targetCell.Formula」で、コメントのテキストにセルの数式を代入しています。
「With .Shape」~「End With」は、コメント枠の指示をしています。
「.TextFrame.AutoSize」に「True」を入れ、図形サイズをテキストに合わせて自動調整するようにしています。
「.AutoShapeType = msoShapeRoundedRectangle」で、図形の形状を角丸四角形に変更しています。
「.Line.ForeColor.RGB = RGB(128, 128, 128)」で、枠線の色を濃いグレーにし、
「.Fill.ForeColor.RGB = RGB(240, 240, 240)」で、図形の塗りつぶしを薄いグレーにしています。
「.Placement = xlMove」で、セルに合わせて移動するよう設定します(サイズ変更はしません)。
「With .TextFrame.Characters.Font」~「End With」は、コメントの書式についての指示をしています。
「.Size = 22」でフォントサイズを22に設定し、
「.Name = “Meiryo UI”」で書式を「Meiryo UI」に設定、
「.ColorIndex = 3」で、文字色を赤に設定しています。

さいごに

セルの数式を画面上で説明する機会がある場合は、是非使ってみてください!
アドインに登録するといつでも呼び出せて便利です。
【Excel VBA】【マクロ】【Tips】マクロをアドインにしてショートカットキーで呼び出す」の「ショートカットキーを設定」から参考にしてみてください。

Lenoco

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です