ちょっと生きづらさを抱えた人へ、気持ちを楽にするためのお手紙です。

【VBA】オートシェイプの中に通番をふる

筆箱にカンニングペーパーを入れる係のみすくです。こんにちは。
VBA関連だけまとめたブログもあります。
筆箱VBA

日本の悪しき習慣、Excelでドキュメントを作るとき、
説明用の図の上にオートシェイプで番号を付けたい時がありますよね。
上の画像みたいな感じね。
画面設計で丸数字のシェイプが50個くらい必要だと、
1個ずつ作るのは面倒くさいので、
VBAでいっきに作っちゃいましょう。

Option Explicit

Private Const TOOL_SH As String = "丸数字部品"

Public Sub Nunbering()
    Dim sh As Worksheet
    Dim objShape As Shape    'Shapeオブジェクト
    
    Set sh = ThisWorkbook.Worksheets(TOOL_SH)
    
    For Each objShape In sh.Shapes
        If objShape.TextFrame.Characters.Text = "採番" Then
            GoTo LBL_CONTINUE
        End If
        
        'Shapeの中にセルの行 - 1の数字をふる
        objShape.TextFrame.Characters.Text = objShape.TopLeftCell.Row - 1
        'Shapeの中のフォントサイズ
        'objShape.TextFrame.Characters.Font.Size = 8
        'Shapeの中のフォントの色
        'objShape.TextFrame.Characters.Font.Color = RGB(255, 0, 0)
LBL_CONTINUE:
    Next
    
    Set sh = Nothing
End Sub

オートシェイプがある位置のセルの行 – 1の数字を振るので、
セルの中にぴったりと配置してください。
画像のようにセルごとコピーすれば良いです。

あとは採番ボタンをピロっと押せば、
通番を振ります。
もちろんオートシェイプの形やデザインは
お好きに変えていただいても動きます。

ダウンロード

自己責任でどうぞ。

コメントを残す

メールアドレスが公開されることはありません。