日本語入力ソフトとVBAの覚え書き

・各種日本語入力ソフトの辞書解説 ・ちょっと楽になるExcel VBA集

選択範囲のコメント位置をリセットする

f:id:dz_dzone:20170814233145j:plain

行の切り取り&貼り付けを行っていると、コメント位置がぐちゃぐちゃになってくることが多いため、コメント位置をリセットするマクロを組んでみました。

Sub ResetCommentPosition()
  ' ** 選択範囲のコメント表示位置をリセットする **
  Dim CL As Range
  Dim T, L, W, T2, L2 As Long
  
  For Each CL In Selection
    ' セルにコメントがあれば処理
    If TypeName(CL.Comment) = "Comment" Then
      With CL
        T = .Top
        L = .Left
        W =.Width
      End With
    
      T2 = T - 7
      L2 = L + W + 11
    
      With CL.Comment.Shape
        .Top = T2
        .Left = L2
      End With
    End If
  Next CL
End Sub

コメントの位置(座標)については、オートシェイプと同様に画面左上を原点とした座標に依ります。現在のセルから基本情報(Top, Left, Width, Height)が得られるのでそれを利用します。

f:id:dz_dzone:20171117154333j:plain

f:id:dz_dzone:20171117154348j:plain

以上。

にほんブログ村 IT技術ブログ VBAへ←記事を気に入って頂けたらポチッとしてもらえると励みになります。