タイダログ

もっと怠けますか? (y/n)

Excel に入力したクイズリストを VBA で PowerPoint に流し込む

年度末のある日、英語科の先生から声をかけられました。

PowerPoint で4択クイズを作りたくて調べたら、VBA? とかいうのを使うと Excel に入力したクイズリストを一括で流し込めるって聞いたんですけど、難しくて……たいだ先生、できますか?」

これを聞いて私は感激しました。以下感激ポイント。

  • 目的と手段をきれいに言語化して伝えてくださった
  • 自分で調べてから聞いてくださった
  • 作業の効率化を考えていらっしゃる

楽をしようとする姿勢! なんと尊いことか!

というわけで、なんか面白そうなのでその先生のお役に立つべく、その VBA? とかいうのでやってみました。

※その先生の了承を得て掲載しています。

作業環境

  • Windows 10 Home 21H2 (OB Build 19044.1645)
  • Microsoft® Excel® 2016 MSO (バージョン 2203 ビルド 16.0.15028.20218) 64 ビット

完成品

X2P-QuizMaker と名付けました。X2P は EXcel To PowerPoint の意です。

もう少し可愛い名前を募集中。

github.com

概要

Excel ワークシートに入力したクイズリストを PowerPoint のスライドに流し込むマクロです。

特徴

  • PowerPoint のひな型ファイルは、デザインやレイアウト、アニメーションを自由に設定可能
  • 右クリックからマクロを実行可能

使い方

まずはこちらの動画をご覧ください(音声無し)。

大まかな流れは以下の通りです。

  1. PowerPoint でひな型ファイルを作る
    PowerPoint のひな型ファイル
  2. Excel でクイズリストを作る
    Excel のクイズリストファイル
  3. クイズリストのシート上で右クリックして、メニューからマクロを実行する

詳しい利用手順は以下のリンク先で確認してください。

github.com

実行結果

クイズリストの1行目

ひな型スライド

実行結果

クイズリストの各行の項目が、ひな型スライドに貼り付けされます。1問のクイズが1枚のスライドになります。

クイズリストの {title} の内容 "Quiz 1" が、ひな型スライドの {title} の箇所に貼り付けされています。同様にクイズリストの {content} の内容 "10進法の 10 を2進法に変換したものはどれ?" がスライドの {content} に、クイズリストの {1} の "10" がスライドの {1} に、それぞれ貼り付けされています。

コード

GitHub からダウンロードしてください。

github.com

結び

とりあえず、その先生の御所望のものが作れたようで安心しました。

VBAPowerPoint を操作するのは初めての経験だったのでとても楽しかったです。はじめは、PowerPoint 側から Excel ファイルのデータを取得しようと思ったのですが、パワポのファイルにマクロを保存しておく方法が何だかややこしいようで、断念しました。

このクイズを毎回の授業で行うとすれば、多ければ週に3回ほど作成することになります。1回10分、年25週と仮定すると、1年で12時間30分。その作業時間を短縮できれば1日年休を取れるのでは?

ワークライフバランスを大切にしましょう。私も早く家に帰りたい。

参考

更新履歴