開発部だより 第174回
SATTの教材作成ツール、smart PREO、smart QUTE 2 の特徴に、コンテンツの設定をMicrosoft Excel で行えることがあります。
簡単に説明しますと、製品に付属のExcelブックを開くとセルにフォーマットが表示されますので、問題文の入力セルには問題文を、配点の入力セルには問題を正解したときに取得する得点を入力していきます。
そしてシートにある「書き出し」ボタンを押すと、入力した内容で設定ファイルが書き出されますので、これをテンプレートに組み込めばそれでコンテンツになるわけです。
なお、書き出しの機能に Visual Basic for Applications(VBA)というプログラミング言語で書かれています。本屋のパソコンコーナーに行くとこれの書籍はたくさん見掛けますね。
このVBAは、同じくMicrosoftのWord、PowerPointでも使えます。
そんなわけで、少し前にPowerPointから情報を抽出してファイルに書き出す仕組みを作っていました。技術はExcelのときと同じです。
ただ検証をしていくうちに、プログラムやバージョンの違いで異なる部分にも多々遭遇します。それでも作るプログラムは同じように動かないといけませんので色々工夫が必要になるわけです。
例をあげるとPowerPointのノート部分で改行した場合、Enter、Shift+Enterではどちらも見た目はただの改行ですが異なる情報が記録されます。またPowerPoint2003と2010でも違う情報が記録されたりします。
これを無視して別のプログラムにコピーしたりすると同じように改行されないこともあり困ります。今回はとりあえず全ての改行コードを<br>に変換しまた。
Replace(Replace(Replace(Replace(TEXT, Chr(11), "<br>"), vbLf, "<br>"), vbCr, "<br>"), vbCrLf, "<br>")
これで、PowerPoint2003でも2010でも出力されるものは同じで、これをExcelで表示するとしたら改めて"<br>"をエクセルの改行コードに変換すればいいわけです。
このように smartシリーズの開発では他のプログラムとの連携も進めています。今後は製品のバージョンアップや新ラインナップに生かしていく予定です。