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

PowerPointで波線・省略線をグラフやマクロで描く神業

PowerPointで波線や省略線(なみなみ線・正弦波)を描く方法をご紹介します。

波線は図形の「曲線」でも描けますが、手動のため綺麗に描くことが困難です。そこで、グラフやマクロを使って綺麗な波線を作成しましょう。

スポンサーリンク

グラフで波線を作成する

グラフの機能を使って波線を作るテクニックです。

グラフを挿入する

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

「グラフの挿入」ダイアログが開くので、「散布図」→「散布図(平滑線)」を選択して「OK」をクリックします。

グラフが挿入され、同時にExcelの作業ウィンドウも開きます。PowerPointとExcelが連動しており、Excelの数値を変更するとグラフの曲線も変動します。

今回は、グラフの曲線が波線になるように数値を入力し、最終的にグラフから図形を取り出して利用します。

波線になるように数値を入力する

開いたExcelの作業ウィンドウはスペースが小さいので、スペースを大きくして作業しましょう。

 

「Xの値」は、2行目から12行目までを「0」から1ずつ増やして「10」まで入力します。「Yの値」は、2行目から12行目までを「1、2、1、2、1…」と1と2を交互に入力しましょう。

入力できたらグラフを確認しましょう。グラフが波線になっていれば成功です。

波線をグラフから取り出す

波線ができたのでグラフから取り出しましょう。

グラフをコピーした状態で、「ホーム」タブ →「クリップボード」グループ →「貼り付け」→「形式を選択して貼り付け」をクリックします。

「形式を選択して貼り付け」ダイアログが開くので、「図(拡張メタファイル)」を選択して「OK」をクリックします。

拡張メタファイル形式でグラフが張り付きました。グラフの編集はできない状態です。

続いてグラフを選択し、「Ctrl + Shift + G」キーでグループ化の解除をします。

すると、「これはインポートされた図で、グループではありません。Microsoft Office 描画オブジェクトに変換しますか?」とメッセージが表示されるので、「はい」をクリックします。

変換後、更に「Ctrl + Shift + G」キーでグループ化の解除をします。

グラフがバラバラになったので、波線を取り出しましょう。

手動で描くのは困難な綺麗な波線が完成しました。

スポンサーリンク

省略線を作成する

前項で描いた波線を使って省略線を作ります。

波線を「高さ:1cm」「幅:10cm」にリサイズします。

長方形を「高さ:3cm」「幅:10cm」で描きます。その前面に波線を上中央揃えで配置し、複製した波線を下中央揃えで配置します。

続いて、図形を複製して「波線1」と「波線2」に分けます。

「波線1」を選択した状態で、「描画ツールの書式」タブ →「図形の挿入」グループ →「図形の結合」→「切り出し」を選択して結合します。

「波線1」が分割されてバラバラになりました。

「波線1」の上部の不要な図形を削除します。

「波線1」を選択した状態で、「描画ツールの書式」タブ →「図形の挿入」グループ →「図形の結合」→「接合」を選択して結合します。

「波線1」が結合されて1つの図形になりました。

「波線1」を「色:白」「線なし」にし、「波線2」の長方形を削除します。※背景は分かりやすく色を入れています。

「波線1」と「波線2」の下の波線を選択して下揃えにします。

「波線1」と「波線2」が合わさったのでグループ化しましょう。

サイズを整えて省略線の完成です。

スポンサーリンク

マクロで波線を作成する

PowerPoint VBAを使って波線を作る方法です。

コード

Sub 波線を作成()

    Dim waveNum As String
    Dim waveSize As Single
    Dim freeFormBuilder As freeFormBuilder
    Dim sld As Slide
    Dim shp As Shape
    
    '波線の山数を入力
    waveNum = InputBox("波線の山数を入力してください。")
    
    '数値以外が入力された場合はマクロを終了
    If IsNumeric(waveNum) Then
        ElseIf waveNum = "" Then
        Exit Sub
    Else
        msg = "数値を入力してください。"
        MsgBox msg
        Exit Sub
    End If
    
    '波線のサイズ
    waveSize = Round(1 * 720 / 25.4, 1)
    
    '選択中のスライド番号を取得
    Set sld = ActivePresentation.Slides(ActiveWindow.View.Slide.SlideIndex)
    
    '始点の位置
    Set freeFormBuilder = sld.Shapes.BuildFreeform(msoEditingCorner, 0, waveSize)
    
    '繰り返し処理
    For i = 1 To waveNum * 2
    
        'X軸の位置
        x = waveSize * i
        
        '偶数、奇数の判定
        If (i Mod 2) = 0 Then
            '偶数時のY軸の位置
            y = waveSize
        Else
            '奇数時のY軸の位置
            y = 0
        End If
            
        '頂点を追加
        freeFormBuilder.AddNodes msoSegmentLine, msoEditingAuto, x, y
        
    Next i

    '波線を作成
    Set shp = freeFormBuilder.ConvertToShape
    
    With shp
        '線幅
        .Line.Weight = 1
        '線の色
        .Line.ForeColor.RGB = RGB(0, 0, 0)

        '繰り返し処理
        For i = .Nodes.Count To 1 Step -1

            '頂点を線分で伸ばす
            .Nodes.SetEditingType i, msoEditingSmooth
            
        Next i
    End With
End Sub

実行結果

実行するとダイアログが開くので、波線の山数を入力して「OK」をクリックします。

指定した山数の波線が作れます。

ジグザグ線を描く

グラフやマクロ使えば、ジグザグ線も綺麗に描くことができます。

詳細は、次のチュートリアルをご参考にしていただければ幸いです。

PowerPointでジグザグ線や階段をグラフやマクロで作る方法
PowerPointでジグザグ線(ギザギザ線)や階段を図形、グラフ、マクロで作る3つの方法をご紹介し…