PowerPointでカードソートを行うために、VBAマクロでファイルから単語を読み込み、スライドに単語カードを順に作成していく
カードソートっていうのはユーザから見たときにコンテンツがどう分類されるかを認識するためのUI手法ですが、
カードソートを実現するOptimalSortなどのサービスは、有料or自由度が低かったりしたので、
PowerPointでカードソートを行えるようマクロを組んでみました。
手順
テキストファイルの準備
今回は、複数の単語が改行(LF)で区切られたテキストファイルを用意しました。
マクロの作成
マクロを作成したいんですが、そもそもVBA全く知らないのでお勉強。
VBAについて
Visual Basic for Applicationsという、Officeを扱うための言語らしい。
今回はPowerPoint2013を使ったが、
これの場合表示タブ>マクロ
でマクロ名入力して作成を押すとマクロの編集画面に移行出来た。
ソースコード
いきなりソースコード。
(自分のための)補足説明
- VBAではimportの代わりに参照設定という項目でライブラリを読み込むみたいです。
ツールタブ>参照設定
で設定出来ます。- 今回インポートしておいたライブラリは以下です(一部余計かもしれません)。
- Visual Basic For Applications
- Microsoft PowerPoint 15.0 Object Library
- Microsoft ActiveX Data Objects 6.1 Library
- Microsoft Office 15.0 Object Library
- Microsoft Forms 2.0 Object Library
- ライブラリが足りない場合でも、不親切なエラーしか出ないので注意してください。
- Setで変数の宣言ぽい。
- LoadFromFileではフルパスを指定した方が良いかもしれないです。あとMacでは試してないです。
With ** ~ End With
内では、ドットから始めた場合自動的に**
が補完されます。- スペース+アンダーバーで複数行に1ステートメントを書けます。
Type:=
っていう書き方は省略しても良いけど変数名明示できる丁寧な書き方。- mougさんにaddShapeメソッドなど色々なリファレンスが掲載されてます(Excel VBAですが)。
Debug.Print "ABC"
でイミディエイトウィンドウにデバッグ文を表示出来ます。表示タブ>イミディエイトウィンドウ
でウィンドウを表示
adTypeText
やadReadLine
は定数です。
保存
pptm拡張子で保存しましょう。
結果
すごいカオス!!