Excel マクロ InkPicture

エクセルのマクロ、「InkPicture」です。
ユーザーフォームに、「InkPicture1」「CommandButton1」「CommandButton2」を配置した場合のコードです。
「CommandButton1(決定)」をクリックすると、現在のセルに手書き描画を貼り付けます。
「CommandButton2(消去)」をクリックすると、直前の手書き描画を消去します。
エクセル マクロ InkPicture

Option Explicit

Private Sub CommandButton1_Click()
' 決定ボタン
 Dim myShape As Shape
 ' 手書き入力されていれば
 If InkPicture1.Ink.Strokes.Count > 0 Then
  ' すべての図形に対し繰り返し
  For Each myShape In ActiveSheet.Shapes
   ' 図形の名前が「手書き」なら
   If myShape.Name = "手書き" Then
    ' 図形を削除
    myShape.Delete
   End If
  Next
  ' 手書き入力内容をクリップボードにコピー
  InkPicture1.Ink.ClipboardCopy
  ' コピーした内容を貼り付け
  ActiveSheet.PasteSpecial
  With Selection
   ' 図形の名前
   .Name = "手書き"
   ' 線なし
   .Border.LineStyle = xlLineStyleNone
   ' 塗りつぶしなし
   .Interior.ColorIndex = xlColorIndexNone
   ' 高さをセルに合わせる
   .Height = ActiveCell.MergeArea.Height
   ' 幅がセルの幅より大きければ
   If .Width > ActiveCell.MergeArea.Width Then
    ' 幅を合わせる
    .Width = ActiveCell.MergeArea.Width
   End If
   ' 位置決め
   .Top = ActiveCell.MergeArea.Top + (ActiveCell.MergeArea.Height - .Height) / 2
   .Left = ActiveCell.MergeArea.Left + (ActiveCell.MergeArea.Width - .Width) / 2
  End With
  ' セルを選択(図形の選択を解除する)
  ActiveCell.Select
  ' ユーザーフォームを開放
  Unload Me
 End If
End Sub

Private Sub CommandButton2_Click()
' 消去ボタン
 With InkPicture1.Ink
  ' 手書き入力されていれば
  If .Strokes.Count > 0 Then
   ' 直前の描画を消去
   .DeleteStroke .Strokes(.Strokes.Count - 1)
   ' ユーザーフォームを再描画
   Me.Repaint
  End If
 End With
End Sub

Private Sub UserForm_Initialize()
' ユーザーフォームの初期化処理
 With InkPicture1.DefaultDrawingAttributes
  ' ペンの太さ
  .Width = 50
  ' ペンの色
  .Color = RGB(0, 0, 0)
 End With
 ' ポインタの形状
 InkPicture1.MousePointer = IMP_Crosshair
End Sub