午後から→オーバークロック

駆け出しハッカー()によるプログラミング・サービス開発備忘録。

PowerPointでカードソートを行うために、VBAマクロでファイルから単語を読み込み、スライドに単語カードを順に作成していく

カードソートっていうのはユーザから見たときにコンテンツがどう分類されるかを認識するためのUI手法ですが、
カードソートを実現するOptimalSortなどのサービスは、有料or自由度が低かったりしたので、
PowerPointでカードソートを行えるようマクロを組んでみました。

手順

テキストファイルの準備

今回は、複数の単語が改行(LF)で区切られたテキストファイルを用意しました。

マクロの作成

マクロを作成したいんですが、そもそもVBA全く知らないのでお勉強。

VBAについて

Visual Basic for Applicationsという、Officeを扱うための言語らしい。
今回はPowerPoint2013を使ったが、
これの場合表示タブ>マクロでマクロ名入力して作成を押すとマクロの編集画面に移行出来た。

ソースコード

いきなりソースコード

(自分のための)補足説明

  • VBAではimportの代わりに参照設定という項目でライブラリを読み込むみたいです。
    • ツールタブ>参照設定で設定出来ます。
    • 今回インポートしておいたライブラリは以下です(一部余計かもしれません)。
    • ライブラリが足りない場合でも、不親切なエラーしか出ないので注意してください。
  • Setで変数の宣言ぽい。
  • LoadFromFileではフルパスを指定した方が良いかもしれないです。あとMacでは試してないです。
  • With ** ~ End With内では、ドットから始めた場合自動的に**が補完されます。
  • スペース+アンダーバーで複数行に1ステートメントを書けます。
  • Type:=っていう書き方は省略しても良いけど変数名明示できる丁寧な書き方。
  • mougさんにaddShapeメソッドなど色々なリファレンスが掲載されてます(Excel VBAですが)。
  • Debug.Print "ABC"でイミディエイトウィンドウにデバッグ文を表示出来ます。
    • 表示タブ>イミディエイトウィンドウでウィンドウを表示
  • adTypeTextadReadLineは定数です。

保存

pptm拡張子で保存しましょう。

結果

f:id:nemupm:20141009002117p:plain

すごいカオス!!