日付印を作成 ⑥ 画像にしてから貼り付け

先日から時代の流れ(脱ハンコ)に逆らい、Excelで日付印の描画に挑戦中だ。
前回は、マクロファイル以外にも押印できるようにしてみた。
infoment.hatenablog.com
今日も、前回の続きから。
f:id:Infoment:20210902223110p:plain

前回作成したマクロを、職場のある方に紹介した。
すると、こんなコメントが帰ってきた。
「すごくいいね!でも、内容を編集できてしまうのが、ちょっと気になるな」
そこで、オプションで編集不可にすることを考えてみた。

今回の作戦は、こんな感じだ。

  1. 日付印のオートシェイプを「図としてコピー」
  2. 貼り付けののち、オートシェイプを削除

f:id:Infoment:20210902224100p:plain

以上を踏まえ、このように改修してみた。作成した日付印を更に編集したくなる
かもしれないので、Public変数にセットしたうえでコピー&ペーストする。

Public StampObject As Shape
' 日付印作成。
Public Sub DrawStamp(Optional picture_flag As Boolean = False)

    ' 円作成。
    DrawCircel
    
    ' 水平線作成。
    DrawLine
    
    ' 部署名および氏名をセットするための□作成。
    DrawSquare
    
    ' 作成したものをグループ化。
    Set StampObject = ActiveSheet.Shapes.Range(ShapeNames).Group
    
    ' 画像として貼り付け。
    If picture_flag Then
        StampObject.CopyPicture
        ActiveSheet.Paste
        StampObject.Delete
    End If
    
End Sub

結果は以下のとおり、一つの画像にまとめることができた。

Sub 押印()
    Dim Stamp As VBAProject.Stamp
    Set Stamp = New VBAProject.Stamp
        Stamp.init Selection
        Stamp.DrawStamp True
End Sub

f:id:Infoment:20210902224810g:plain

とはいえ実は、Microsoft Office 描画オブジェクトに変換することで、
やっぱり編集できたりもする。
f:id:Infoment:20210902225045p:plain

これについては・・・気づかなかったことにしよう。

ということで、今回のシリーズはこれでおしまい。
なお、今回作成したクラスモジュールは ↓ こちらにまとめておく。
※何か変更があれば、今後はこちらを編集します。
infoment.hatenablog.com


参考まで。