Excelのデータをパワポに貼り付けるのを自動化するのにマクロを使っています。
※Excelとパワポの画面 by Canon R6+50mmF1.8
Excelをパワポにしたい
Excelのデータがあり、それをパワポに使いたいなら、
・Excelデータをコピー
・パワポに貼り付け
で、できます。
ただ、それを繰り返すとなるとなんとかしたいものです。
コピペの繰り返しは、人類の時間の無駄ですので。
コピペの繰り返しはマクロ(VBA)で自動化できます。
今回ご紹介するのは、Excelマクロ。
Excelマクロでパワポも操作できます。
(今回は、パワポマクロではなくExcelマクロです。)
私が使っているのは、Q&A。
事前にいただいた質問をパワポにするときに使っています。
Excelまたは、CSVやGoogleスプレッドシートでデータをExcelに貼り付け、
マクロを実行すれば、このようにパワポのスライドにできるのです。
データがいくつあっても一瞬で。
このつくり方をまとめてみました。
Excelマクロでパワポを操作
まず、Excelマクロでパワポを操作する設定を確認しましょう。
ExcelでAlt+F11を押し、VBE(ビジュアルベーシックエディター)を開きます。
ここで、[ツール]→[参照設定]を選び、
[Microsoft Offce ○○ Object Libray]にチェックが入っているか確認しましょう。
(○○はバージョンです)
これで準備完了です。
VBEでAlt→I→Mと押し(1つずつ)、標準モジュールというものを入れ、ここにマクロ(コード)を書いていきます。
Subのあとのマクロ名は任意です。
Sub Excel_PP() '設定 Dim ppt Set ppt = CreateObject("PowerPoint.Application") 'パワポを起動 Dim ppts Set ppts = ppt.presentations.Add End Sub
まずはここまで書いてみて、実行してみましょう。 パワポが起動すればOKです。 次に進みましょう。
Excelデータを1つずつパワポスライドへ
次にExcelのデータを繰り返し読み取ります。 ここで使うのは、for。 1行目から、最終行(データがあるだけ)繰り返すなら、こう書きます。 これで、Excelデータがいくつあっても自動的に処理できるのです。 人類がコピペを繰り返すことはありません。 (追加部分は太字)
Sub Excel_PP() '設定 Dim ppt Set ppt = CreateObject("PowerPoint.Application") 'パワポを起動 Dim ppts Set ppts = ppt.presentations.Add Dim i For i = 1 To Range("a" & Rows.Count).End(xlUp).Row Next End Sub
スライドを追加していきます。
パワポにはスライドのレイアウトというものがあり、それを指定しなければいけません。
ここで選んだのは、[タイトルとコンテンツ]。
このレイアウトの番号は、16なのです。
パワポのオブジェクトブラウザでわかります。
このレイアウトのスライドを、1枚目、2枚目、3枚目……と追加していくのです。
こう書きます。
Dim slide Set slide = ppts.slides.Add(Index:=i, Layout:=16)
そして、そのスライドの2番めのボックスにExcelのA列のデータを、セルA1、A2、A3……と順番に入れていくわけです。
slide.Shapes(2).TextFrame.TextRange.Text = Range(“a” & i).Value ‘データ挿入
データをパワポのタイトル部分に入れたければ、Shapes(1)にしましょう。
この部分は箇条書きになるので、最後に箇条書き解除を入れてみました。 slide.Shapes(2).TextFrame.TextRange.ParagraphFormat.Bullet.Visible = msoFalse ‘箇条書き解除
最終的にこうなります。 (追加部分は太字)
Sub Excel_PP() '設定 Dim ppt Set ppt = CreateObject("PowerPoint.Application") 'パワポを起動 Dim ppts Set ppts = ppt.presentations.Add Dim i For i = 1 To Range("a" & Rows.Count).End(xlUp).Row 'スライドを追加 Dim slide Set slide = ppts.slides.Add(Index:=i, Layout:=16) slide.Shapes(2).TextFrame.TextRange.Text = Range("a" & i).Value 'データ挿入 slide.Shapes(2).TextFrame.TextRange.ParagraphFormat.Bullet.Visible = msoFalse '箇条書き解除 Next End Sub
「Excelをパワポに貼り付け?この私(おれ、ぼく、あたし、うち、わし)がそんなことに時間を使えるか!」と疑問に感じるのが第一歩です。
(人を雇っていれば、「よろしく!」で済むんでしょうけど……。その方の時間を奪い、スキルを伸ばす機会をも奪ってしまいます)
もし使える場面があれば、使ってみていただければ。
■編集後記
昨日は終日雨。
午前中は娘のダンスイベント。
屋外(娘たちは屋根付き)でしたが、なんとか。
午後はPS5 FIFA23の練習。
■1日1新→Kindle『1日1新』
娘のとある場所でのイベント
ポップコーンを乾燥とうもろこしから
■娘(5歳)日記→Kindle『娘日記』・ Kindle『娘日記Ⅱ』
朝からダンスイベントのリハーサル。
終わってからカフェで休憩して本番。
雨で寒い中無事に終わりました。
終わってからは、暖かいものを……とうどんを。
うどん屋が混んでいたいので、回転寿司で。
帰宅してからは、動画を見たり、一緒にポップコーンをつくったり。
乾燥とうもろこしから粒を外すのも手伝ってくれました。
■著書
『税理士のためのプログラミング -ChatGPTで知識ゼロから始める本-』
『すべてをがんばりすぎなくてもいい!顧問先の満足度を高める税理士業務の見極め方』
ひとり税理士のギモンに答える128問128答
【インボイス対応版】ひとり社長の経理の基本
「繁忙期」でもやりたいことを諦めない! 税理士のための業務効率化マニュアル
ひとり税理士の自宅仕事術
リモート経理完全マニュアル――小さな会社にお金を残す87のノウハウ
ひとり税理士のセーフティネットとリスクマネジメント
税理士のためのRPA入門~一歩踏み出せば変えられる!業務効率化の方法~
やってはいけないExcel――「やってはいけない」がわかると「Excelの正解」がわかる
AI時代のひとり税理士
新版 そのまま使える 経理&会計のためのExcel入門
フリーランスとひとり社長のための 経理をエクセルでトコトン楽にする本
新版 ひとり社長の経理の基本
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
【監修】十人十色の「ひとり税理士」という生き方