Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Microsoft 365)
全シートのテキストボックスや図形の文字サイズとフォントを指定のものに変更したい。
投稿日時: 22/03/01 10:01:53
投稿者: ゆうゆみ

VBA初心者です。
Excelの全シートについて、テキストボックスや図形に入力されている文字のサイズを7pt、フォントをArialに変更したいです。
 
下のマクロを作ってみて、ただのテキストボックスなら変更できました。
ただ、他のオブジェクトとグループ化されたテキストボックスや、長方形や吹き出しに入力された文字は変更できません。
どうしたらそれらも変更できるでしょうか。
ちなみに、文字入りのテキストボックス、長方形、吹き出しはシートによってあったりなかったりで、ある場合も個数は様々です。
どなたか教えてください!
 
Sub TextBox_Arial_7pt()
'
' TextBox_Arial_7pt Macro
'
 Dim i As Long
    For Each シート In Sheets
    シート.Select
    For Each myshape In ActiveSheet.Shapes
        If myshape.Type = msoTextBox Then
            myshape.Select
            With myshape.TextFrame2
            .TextRange.Font.Size = 7
            .TextRange.Font.Name = "Arial"
        End With
        End If
    Next
    Next
End Sub

回答
投稿日時: 22/03/01 11:04:45
投稿者: よろずや

Option Explicit

Sub sample()
    Dim ws As Worksheet, sp1 As Shape
    For Each ws In Worksheets
        For Each sp1 In ws.Shapes
            SetShapesFont sp1
        Next sp1
    Next ws
End Sub

Sub SetShapesFont(sp1 As Shape)
Dim sp2 As Shape
    Select Case sp1.Type
        Case msoTextBox, msoAutoShape
            With sp1.TextFrame2.TextRange.Font
                .Size = 7
                .Name = "Arial"
            End With
        Case msoGroup
            For Each sp2 In sp1.GroupItems
                SetShapesFont sp2
            Next sp2
        Case Else
            MsgBox "Shape.Type = " & sp1.Type
    End Select
End Sub

他の図形については、マクロの記録、オブジェクトブラウザーにて確認の上追記してください。

投稿日時: 22/03/04 19:03:26
投稿者: ゆうゆみ

おかげさまで解決いたしました。
ありがとうございました!