★ パワーポイントの指定のエリア内に ★
★ Excelデータを貼り付ける ★

パワーポイントで報告書を作る時に、どのページにも一定のエリアの中にグラフをおさめたいということがよくあります(各論、詳細編を作る時によくあるのではないでしょうか)。
たとえば、下のようなレイアウトで、水色に塗ってあるエリアの中におさまるようにグラフを貼りたいというような場合です(実際の報告書では、グラフを貼る場所にこのような水色の枠を用意するということはありませんが、エリアのイメージをわかりやすくするために水色に塗った枠を作ってあります)。



手作業でも簡単にできる作業ではありますが、手作業だとどうしても微妙なずれが出てきます(気にするほどじゃあないんですけど)。それに、ページ数が多いと、やはり面倒っちゃあ面倒です。
そこで、こういう場合にはマクロプログラムを利用することにしています。
Excelと違って、パワーポイントでは、マクロプログラムを使うということは滅多にないのですが、この場合はけっこう便利だったりします。
そこで、上記のような場合のマクロプログラムの使い方を紹介してみましょう。


●まずはマクロプログラムを使うための準備

まずは、パワーポイントを立ち上げてみてください。
パワーポイントの上の方に「ファイル」「ホーム」「挿入」といった文字が並んでいますが(ここの部分は「リボン」と言います)、そこに「開発」という文字はありますでしょうか。
もしなければ、あらかじめ用意しておいた方が便利なので、まずはリボンに「開発」を用意します。
「開発」という文字があれば、先に進んでください。



リボンの「ファイル」をクリックしてください。下の方に「オプション」がありますので、次はそこをクリック。



すると、「PowerPointのオプション」というウィンドウが開きます。



今度は、そのウィンドウの左側にある「リボンのユーザー設定」をクリック。



すると、上のような画面になるので、右側の「メインタブ」の「開発」にチェックを入れて「OK」をクリック。
すると、元の画面のリボンに「開発」が出てきているはずです。


●次に、枠の位置、サイズを調べるためのプログラムに手をつけます

その「開発」をクリックすると、リボンの下の左側に「Visual Basic」という文字がありますので、そこをクリックしてください。



すると、下のようなウィンドウが出てきます。
上の方にある「挿入」をクリックすると、「ユーザーフォーム」「標準モジュール」「クラスモジュール」といったプルダウンが表示されますので、その中の「標準モジュール」をクリックしてください。



すると、下のような画面になり、その右側の大きなスペースがプログラムを書くためのスペースとなります。



それでは、そのプログラムを書くためのスペースに、以下のプログラムを貼り付けてください。
(プログラムは「Sub」で始まり、「End Sub」で終わります)

Sub 貼り付けたいサイズを調べておく()
'グラフ等を貼り付けたいサイズの図形をセレクトしておいて、このプログラムを走らせる
    MsgBox ("幅:" & ActiveWindow.Selection.ShapeRange.Width) 'セレクトした画像の幅
    MsgBox ("高さ:" & ActiveWindow.Selection.ShapeRange.Height) 'セレクトした画像の高さ
    MsgBox ("上位置:" & ActiveWindow.Selection.ShapeRange.Top) 'セレクトした画像の上
    MsgBox ("左位置:" & ActiveWindow.Selection.ShapeRange.Left) 'セレクトした画像の左
End Sub

プログラムを貼り付けると、こんな感じになります。



それでは、これがどういうプログラムか、実際に動かしてみましょう。
最初の下の画面に戻って、水色の枠をクリックしてください。水色の枠の四隅に〇印、上下左右に□印が出ます。
続いて、リボンの「開発」をクリック、リボンの下の「マクロ」をクリック。



すると、下のような「マクロ」というウィンドウが開かれ、「貼り付けたいサイズを調べておく」というマクロ名が選ばれた状態となっています。
このマクロ名が、さきほど書いたプログラムの1行目「Sub」の後ろにあったプログラムのタイトルとなります。



ここで、右側にある実行をクリックしてください。



これが水色の枠の幅です。
「OK」をクリックすると、続いて高さ、上位置、左位置の数値が出てきますので、それらの数値をメモしておいてください


●いよいよExcelデータを貼り付けるためのプログラムを作ります

「開発→Visual Basic」とクリックして、先ほどのプログラムを書き込む画面を出したら、さっきのプログラムの下に以下の「Excel貼り付け」というプログラムを貼り付けてください。

Sub Excel貼り付け()
    '指定エリアのサイズをここに入力してください
    area_w = 000 '幅
    area_h = 000 '高さ
    area_t = 000 '上位置
    area_l = 000 '左位置


    '図(拡張メタファイル)としてExcelデータを貼り付ける
    ActiveWindow.View.PasteSpecial DataType:=ppPasteEnhancedMetafile, Link:=msoFalse, DisplayAsIcon:=msoFalse

    'まずは75%縮小にする
    ActiveWindow.Selection.ShapeRange.ScaleHeight 0.75, msoTrue, msoScaleFromTopLeft

    'もし、幅がオーバーしていたら幅を合わせる
    If ActiveWindow.Selection.ShapeRange.Width > area_w Then
        'まずは幅を合わせてみる
        With ActiveWindow.Selection.ShapeRange
            .Fill.Transparency = 0#
            .LockAspectRatio = msoTrue '高さと幅の比率を維持
            .Width = area_w
            .Left = area_l
        End With
    End If

    'もし、もし幅を合わせたあとで高さがオーバーしていたら高さの方に合わせる
    If ActiveWindow.Selection.ShapeRange.Height > area_h Then
        With ActiveWindow.Selection.ShapeRange
            .Fill.Transparency = 0#
            .LockAspectRatio = msoTrue '高さと幅の比率を維持
            .Height = area_h
            .Top = area_t
        End With
    End If

    '指定のエリアの下に合わせる(上に合わせたい、中心にしたい場合はここを修正する)
    ActiveWindow.Selection.ShapeRange.Top = area_t + (area_h - ActiveWindow.Selection.ShapeRange.Height)
    '指定のエリアの右側に合わせる(左側に合わせたい、中心にしたい場合はここを修正する)
    ActiveWindow.Selection.ShapeRange.Left = area_l + (area_w - ActiveWindow.Selection.ShapeRange.Width)

End Sub

プログラムの3行目にある「area_w = 000 '幅」の[000]の部分を、さきほどメモしておいた水色の枠の幅の数値に置き換えてください。
同様に、「area_h = 000 '高さ」の[000]を高さの数値、「area_t = 000 '上位置」の[000]を上位置の数値、「area_l = 000 '左位置」の[000]を左位置の数値に置き換えてください。




これで、プログラムは完成です。


●では、Excelデータを貼り付けてみましょう

たとえば、下のようなExcelのグラフを貼り付けてみることにします。
貼り付けたいエリアを選んでコピーしてください。



次いで、いまコピーしたグラフを貼り付けたいパワーポイントのページに切り換えます。
この時、気をつけて欲しいのですが、左側のスライド一覧がセレクトされた状態だとプログラムは動きません。念のために、Excelを貼り付けたいスライドを一度クリックして、スライドがセレクトされた状態にしておいてください。



そして、「開発→マクロ」をクリックすると、下のように「Excel貼り付け」と「貼り付けたいサイズを調べておく」という2つのプログラムが選べるようになっています。



ここで、「Excel貼り付け」を選択して、「実行」をクリックしてください。
そうすると、下の図のようにExcelのグラフが貼り付けられているはずです。



念のために、水色の枠のあるページに貼り付けてみると、下のようになります。



タテ、ヨコを縮小していってちょうど指定したエリア内に収まるサイズで貼り付けるようになっていますので、この場合には左側に余白ができますが、もっとヨコに長いグラフの場合にはヨコピッタリで上に余白ができることとなります。

なお、このプログラムはExcelデータを右下に合わせて貼り付けるようになっていますが、プログラムをちょっといじるだけで指定エリアの真ん中に貼るようにも、上に貼るようにも、左に貼るようにもできます。簡単なプログラムですので、ぜひ挑戦してみてください。

あとは、
 1.Excelデータをコピーする
 2.パワーポイントの貼り付けたいスライドをセレクトする
 3.「マクロ→Excel貼り付け→実行」
の繰り返しで、どんどんグラフをパワーポイントに貼り付けていくことができます。
 たとえ100ページの報告書でも、グラフを貼る作業だけはかなり省力化できること間違いなしです。


●見本のファイルはこちらからダウンロードできます

           見本ファイルダウンロード



★試しに使ってみたという方がいらっしゃいましたら、ぜひとも感想をお聞かせください。
 よろしくお願いします。

統計調査センター株式会社 吉田真司
メールアドレス:yoshida@tccinc.co.jp


トップページへ