入力した手書き文字をテキスト文字として認識する
Accessのフォーム上にInkPictureコントロールを配置することで、ペンや指先による手書き入力が可能になります。本記事では、入力した手書き文字をテキスト文字として認識する「認識ボタン」を配置する手順を紹介します。
1.手書き入力(InkPictureコントロール)
InkPictureコントロールは、Windowsタブレットなどタッチ操作に対応したデバイスを使って、ペンや指先による手書き入力を可能にするコントロールです。このコントロールは、タッチ操作未対応のデバイスでも、マウス操作により手書きすることができます。本記事では、入力した手書き文字をテキスト文字として認識する「認識ボタン」を配置する手順を紹介します。
2.認識ボタンの配置
テキストボックスの追加
「Accessのフォームに手書き入力エリアを配置する」で作成したフォームにテキストボックスを追加します。フォーム上の適当な位置へ移動して、幅・高さを整えます。
「フォントサイズ」は「82」、「名前」は「txt_認識文字」としました。
ボタンの追加
続けて、フォームにボタンを追加します。フォーム上の適当な位置へ移動して、幅・高さを整えます。「標題」は「認識」、「名前」は「btn_認識」としました。
コードの入力
プロパティシートのイベントタブをクリックします。「クリック時」の欄で「イベントプロシージャ」を選択して、右側の「...」をクリックします。
VBA(Visual Basic for Applications)のコードエディター(VBE)が起動するので、認識ボタンがクリックされたときに実行されるコードを入力します。
手書き文字は、ストロークという情報として一筆毎に保存されています。ストロークの件数が0より大きいと、手書き入力されていると判断して手書き文字の認識処理を行います。
以上で、認識ボタンの配置が完了です。左側のオブジェクト一覧で「手書き入力フォーム」をダブルクリック、または右クリック後「開く」を選択して、フォームを実行します。
認識ボタンをクリックして、入力した手書き文字がテキスト文字として表示されると完成です。
3.補足
手書き認識エンジン
Windowsの表示言語に追加されている言語のうち、手書きをサポートしている言語(手書き認識エンジン)のリストがRecognizersオブジェクトに取得されます。図3-1の場合、日本語と英語(米国)が追加されていて、いずれも手書きをサポート(ペンのアイコンが表示されている)しています。
図3-2は、Recognizersオブジェクトのウォッチです。Item 1と3が英語(米国)の手書き認識エンジン、Item 2が日本語の手書き認識エンジンです。
本プログラムでは、RecognizersオブジェクトのGetDefaultRecognizerメソッドで、使用する手書き認識エンジンをRecognizerEngineオブジェクトにセットしています。このWindowsでは、デフォルトが「日本語」なので、使用される手書き認識エンジンは「Microsoft 日本語手書き認識エンジン」となります。