マクロのフォームではなく、挿入→テキストボックスで入れたものの内容を変更する方法。
画像挿入で貼り付けた地図に番号を振って、あとでシャッフルするときなどに使用。
前準備として、テキストボックスの名前を連番にしておく。
ページレイアウト→配置→オブジェクトの選択と表示をクリックして、オブジェクトの一覧を表示。ここで名前を変更して、連番にする。
同じ名前も存在できるので、ユニークな情報ではなさそうだけど、とりあえず動くからこれ以上は調べない。
以下の例では0パディングしてない名前を前提にしているので、0パディングした場合はformat関数あたりを使って調整。
tbox_0 - tbox_19 まで20個のテキストボックスに、⑳ - ①までの丸数字(機種依存文字)を逆順に設定。
ちなみに21以降は文字コードが違うようで、いろいろ試したけどうまく振れなかったので今回は断念。
あと、テキストボックスの他、吹き出しを混ぜても問題なく動作した。
Option Explicit
Const HEADER_NAME = "tbox_"
Const MAX_NUM = 19
Private Sub setTboxesNumber()
Dim i As Integer
Dim box_name As String
For i = 0 To MAX_NUM
box_name = Trim(HEADER_NAME & Trim(str(i)))
ActiveSheet.Shapes.Range(box_name).TextFrame.Characters.Text = Chr(Asc("⑳") - i)
Next
End Sub
実行前 | 実行後 |
ループカウンタを1から始めればMAX_NUMを20にできるんだけど、それはそれで0番目の要素が飛ばされるから気持ち悪い。
0 件のコメント:
コメントを投稿