【コラム】

日本語で10行プログラミング

31 顔文字入力支援ソフト

    クジラ飛行机  [2005/09/08]

    なでしこ開発日記 - なでしこ本執筆裏話

    ついに、なでしこの公式ガイドブックが発売になりました。私の手元にも編集部から10冊のなでしこ本が届きました。こうして手にとって眺めると、胸に熱い感動がこみ上げてきます。なでしこの開発から、解説本執筆までの、様々な苦労が思い出されます。

    特になでしこ本の執筆では、私の友人たちに、原稿をレビューしてもらいながら書きました。身近な関係ということもあり、友人たちは原稿に対して容赦なくダメ出ししてくれます。私が書いた渾身の文章にも「言い回しがくどい」と指摘があったり、「内容が分かりづらい」と一蹴され、何度も何度も書き直した部分もあります。それで改めて文章の書き方や構成など勉強する良い機会にもなりました。

    ダメ出しがあると、基本的な5W1H、アイデア発想法のオズボーンのチェックリストやKJ法、マインドマップなど、いろいろな手法も調べてみました。そのおかげでずいぶん原稿が読みやすくなったと思います。

    また、執筆のために、原稿の構成を推敲するプログラム、原稿の確認をするプログラム、文章整形のプログラムなど、たくさんのプログラムを作りながら書きました。なでしこの本を執筆するのに、なでしこがずいぶん活躍したのです。

    加えて、漫画家の友人に描いてもらった四コマ漫画もいい味を出していて気に入っています。プログラムに漫画に見所がたくさんあります。内容も入門から実用までボリューム満点ですので、書店で見かけたらぜひ手にとって眺めてみてください。

    顔文字入力支援ソフト

    さて、今回は顔文字の入力支援ソフトを作ってみます。顔文字を一覧から選んでテキストエディタに貼り付けるというプログラムです。メールを書いたり、掲示板に書き込みをするときに、クリックするだけで「(^o^)v」という顔文字を貼り付けられるようなものを作ってみます。

    クリック一発でテキストエディタに顔文字を挿入します

    画面設計と動作

    今回のプログラムの動作を箇条書きにすると非常にシンプルです。

    1. リストを作り、そこに顔文字の一覧表示する
    2. ユーザーがリストをクリックしたらテキストエディタに貼り付ける

    しかし、作ってみると思った以上に難しいのが(2)の動作です。と、言うのも、自分でテキストエディタを作り、そこに顔文字を入力する機能を付け加えるというだけなら簡単なのですが、Webブラウザやユーザーが利用しているテキストエディタに貼り付けるというのがどうしたら良いのか悩んでしまうのです。

    では、まず、テキストエディタを自分で作り、ボタンを押したら顔文字を挿入するプログラムを作ってみます。

    テキストエディタとはメモ。#1
    挿入ボタンとはボタン。#2
    これをクリックした時は #3
      テキストエディタの選択文字列は「(^v^)v」。#4

    ボタンを押したら顔文字を挿入するプログラム

    1行目で「●とはメモ」と書くことで、メモ帳のようなメモ部品を作ります。そして、2秒目で「●とはボタン」と書くとボタンを作ります。そして3行目以降ではこれをクリックした時に、メモ部品のカーソルのある位置に顔文字を挿入するというプログラムになっています。

    10行プログラム - 顔文字入力支援ソフト

    そして、以下が、Webブラウザやテキストエディタに、好きな顔文字を挿入できる顔文字入力支援ソフトです。なでしこのバージョン1.395で動作確認しています。

    母艦のタイトルは「顔文字貼り付け」。#1
    母艦の幅は300。母艦の高さは200。母艦を最前面。#2
    顔リストとはリスト。そのレイアウトは「全体」。#3
    そのアイテムは「(^o^)v{~}(>_<){~}\(@v@)\{~}( ̄ー ̄{~}(o_o){~}(;o;)」#4
    これをクリックした時は #5
      『%{TAB}』をキー送信。0.1秒待つ。#6
      退避用はクリップボード。#7
      クリップボードは顔リストのテキスト。#8
      『^v』をキー送信。0.1秒待つ。#9
      クリップボードは退避用。#10

    このプログラムの一番のポイントは6行目です。「『%{TAB}』をキー送信。」とあります。「キー送信」命令では任意のキーを押したのと同じ動作をさせることができます。『%{TAB}』というのは、ALTキーとタブキーを押すという意味です。実際に押してみると分かりますが、この組み合わせでキーを押すと、直前に利用していたソフトが手前になります。Windowsのこの機能を利用して、顔文字の貼り付けを行うのです。

    では、1行ずつ詳しくプログラムを見ていきましょう。1行目では、メインフォームである「母艦」のタイトルを指定しています。これでぐっとオリジナルソフトらしくなります。そして、2行目で、サイズの指定をしています。また「母艦を最前面」と書くことで、常にソフトが最前面に表示されるようになります。

    3行目では、顔文字の一覧を表示するリストを作り、それが画面全体に配置されるようレイアウトを指定します。4行目では顔文字の一覧を設定しています。

    5行目以降では、リストをクリックした時の動作を設定します。6行目では、ALT+タブの組み合わせを送信し、直前に利用していたウィンドウをアクティブにします。そして、7行目では、このプログラムではクリップボード経由で顔文字を送信するので、クリップボードの内容を壊さないように、変数「退避用」に退避させておきます。8行目でクリップボードの内容を顔文字に書き換え、9行目でctrl+vのキーを送信(つまりクリップボードの貼り付け)を行います。そして、10行目で、退避していたクリップボードの内容を戻して完了となります。

    改造のヒント

    顔文字入力支援ソフトの仕組みが理解できたところで、10行プログラムを自分なりに改造してみましょう。

    まず、上の10行プログラムでは、顔文字の種類が少なすぎるので、顔文字がたくさん表示されるようにしてみましょう。顔文字の種類を増やすたびにプログラムを改造するのは面白くないので、外部テキストファイルに書いてある顔文字の一覧を読み込んで表示するように改造してみます。

    次に、顔文字のジャンルを切り替えられるようにしてみましょう。好きな顔文字をたくさん登録していくと、ジャンルごとに顔文字を分類したくなるというのが人情というものです。「怒る」や「笑う」と言ったジャンルを選ぶとすぐにその顔文字が入力できるようにするのです。

    以下が改造版です。テキストファイルの「kaomoji.txt」を読み込んで一覧を表示しますので、このファイルをプログラムと同じフォルダにダウンロードして実行してみてください。

    031.nako
    kaomoji.txt

    外部テキストファイルを読んで一覧を表示する機能と任意のジャンルがすぐ表示されるように改造したもの

    また、他にも、クリップボードの監視機能をつけてみたり、現在時刻を入力できるようにしてみたりと、自分なりの機能をたくさんつけて、自分にぴったりの素敵な顔文字入力支援ソフトを作ってみてください。

    新着記事

    特設サイトの情報

      人気記事

      一覧

        イチオシ記事

        新着記事

        特別企画

        マイナビニュースマガジン