パワポの【疑問】を解決!「よくあるご質問」はこちら ▶︎
スポンサーリンク
スポンサーリンク

PowerPointで図形を円状に等間隔で回転コピーする神業

PowerPointで星などの図形を円状に等間隔で回転コピーして配置する方法をご紹介します。

図形を複製と回転の繰り返しで円状に並べていくよりも、指定数の図形を円状に一括配置できるツールを活用するのが効率的です。

後半ではPowerPoint VBAを使い、回転コピーのマクロもご紹介します。

スポンサーリンク

星を円状に12個配置する

作例

今回は、下図の作例ように星を円状に12個配置した図形を作ります。

SmartArtで図形を円状に配置する

図形を円状に配置するのは、複製と回転を繰り返せば可能ですが効率的ではありません。PowerPointには自動で図形を円状に並べてくれるツールがあるので活用しましょう。

「挿入」タブ →「図」グループ →「SmartArt」をクリックします。

「SmartArtグラフィックの選択」ダイアログが開くので、「循環」→「基本の循環」を選択して「OK」をクリックします。

SmartArtがスライドに挿入されます。今回は、星が12個円状に配置した図形を作りたいので、現在5個ある正円の数を7個増やします。

SmartArtを選択し、「SmartArtツールのデザイン」タブ →「グラフィックの作成」グループの「図形の追加」を7回クリックして正円を追加します。

正円が12個になりました。

続いて、不要な図形を削除する為にSmartArtから図形に変換します。

SmartArtを選択し、「SmartArtツールのデザイン」タブ →「SmartArtのスタイル」グループ →「変換」→「図形に変換」を選択します。

テキストが削除されて図形に変換されました。「Ctrl + Shift + G」キーのグループ化解除でも図形に変換できます。

全ての矢印を削除して正円だけ残します。この時、正円に白色の「1pt」の線幅が設定されているので「線なし」にしましょう。

図形の種類を変更する

全ての正円を選択し、「描画ツールの書式」タブ →「図形の挿入」グループ →「図形の編集」→「図形の変更」→「星:5pt」を選択します。

正円が星に変わりました。

お好みの色に変更して完成です。

スポンサーリンク

図形のサイズを変更する

図形一つ一つのサイズを変更する方法です。

グループ化している場合は「Ctrl + Shift + G」キーで解除し、図形を全選択します。

「図形の書式設定」ウィンドウ →「図形のオプション」→「サイズとプロパティ」→「サイズ」の「縦横比を固定する」にチェックを入れ、「高さ」または「幅」の値を変更します。

図形のサイズを縮小できました。

図形を自転させた状態にする

図形を自転させながら円状に配置した状態にする方法です。

スマートな方法ではないですが、「360°÷図形の数」で角度を求めて図形を一つずつ回転させていく方法しかありません。

図形が12個の場合、右回りに「30°」ずつ増やしながら回転させていきます。

図形の回転は、「図形の書式設定」ウィンドウ →「図形のオプション」→「サイズとプロパティ」→「サイズ」の「回転」で行います。

角度を「15°」の倍数で増やしていく場合は、値の入力よりも図形を「15°」ずつ回転させるショートカットキー「Alt」+「→」「←」キーを使うと簡単です。

回転させた後で図形一つ一つのサイズを変更すると形が崩れてしまうので、回転はサイズが決まってから行いましょう。

図形を指定の角度で回転コピーするマクロ

コード

Sub 回転コピー()

    Dim n As Long
    Dim msg As String
    Dim rot As String
    Dim rotNum As Long

    '選択中のスライド番号を取得
    n = ActiveWindow.Selection.SlideRange.SlideIndex

    '選択中のオブジェクトをコピー
    With ActiveWindow.Selection

        'シェイプが選択されている場合
        If .Type = ppSelectionShapes Then

            '角丸の半径を入力
            rot = InputBox("回転コピーする角度を入力してください")
            rotNum = 180 / rot

            '数値以外が入力された場合はマクロを終了
            If IsNumeric(rot) Then
                ElseIf rot = "" Then
                Exit Sub
            Else
                msg = "数値を入力してください。"
                MsgBox msg
                Exit Sub
            End If
        End If

        With .ShapeRange

            'オブジェクトをコピー
            .Copy
            'コピー元の位置を代入
            x = .Top
            y = .Left

        End With
    End With

    '繰り返し処理
    For i = 1 To rotNum - 1

        With ActivePresentation.Slides(n).Shapes.Paste

            '回転コピー
            .Top = x
            .Left = y
            .Rotation = rot * i

        End With
    Next i
End Sub

実行方法

円の中心で向かい合う図形が回転しながら複製するマクロになっているので、下図のオレンジ色の位置に当たる図形を2つ作成します。

星を自転させたい場合は、下の図形を上下反転させてください。最後にグループ化して準備完了です。

グループ化した図形を選択した状態でマクロを実行します。

ダイアログが開くので、回転コピーする角度を入力して「OK」をクリックします。

図形が回転コピーして円状になりました。

それぞれの図形の角度を「0°」にする方法です。

グループ化を全解除してから全ての図形を選択し、「図形の書式設定」ウィンドウ →「サイズとプロパティ」→「サイズ」→「回転」を「0°」に設定します。

それぞれの図形の角度が「0°」になりました。