Excelが大好きだ!

Excel大好き経理マンがExcelの事を書き綴っていきます。


スポンサードリンク

CDと本の管理システムをExcelで作成する(4.SQLite3データベースへのデータ入力フォーム1)

前回でSQLite3データベースへMeidaMarkerのデータを挿入して基礎となるデータベースが完成しました。

www.excellovers.com

今回はこれから新しくデータを登録する際の入力フォームを作成してみたいと思います。

ちょっと長くなりそうなので、第1弾としてフォームの設定をしてみます。

入力フォーム全景

f:id:ExcelLover:20181125184244j:plain

入力フォームに関しては単純にデータベースの項目分の入力枠を作成しました。

カテゴリ・状態・評価・所有に関してはフリーフォーマットではなく、入力内容に制限をかけるためにcomboboxにしました。

各種コントロールの設定

初期値から変更したもののみ記載しています。

但しフォントをメイリオにしてサイズは適当に変更しています。

項目 内容
タイトル カテゴリ
オブジェクト名 conCategory
項目 内容
タイトル タイトル
オブジェクト名 conTitle
IMEMode fmIMEModeOn
項目 内容
タイトル アーティスト
オブジェクト名 conArtist
IMEMode fmIMEModeOn
項目 内容
タイトル レーベル
オブジェクト名 conLabel
項目 内容
タイトル 購入日
オブジェクト名 conBuyDate
IMEMode fmIMEModeOff
項目 内容
タイトル 状態
オブジェクト名 conStatus
項目 内容
タイトル 評価
オブジェクト名 conAssessment
項目 内容
タイトル コメント
オブジェクト名 conComment
項目 内容
タイトル 所有
オブジェクト名 conPossession


IMEModeはカーソルが当たった際のIMEの入力モードを自動的に変更してくれます。

IMEMode 内容
fmIMEModeOn On(日本語入力)
fmIMEModeOff off(英数入力)

購入日にカーソルが当たった際にoffにしているのは、日付を入力する際に日本語入力になっていると確定の手間が増えるためです。

英数入力になっているとスムーズに入力ができます。


重要設定『タブオーダー』

タブ オーダーとは、Tab キーを押したときに、ダイアログ ボックス内で入力フォーカスがコントロール間を移動する順序です。 通常、タブ オーダーはダイアログ ボックスの左から右、および上から下の順序になっています。

Changing the Tab Order of Controls

今回作成したフォームを例に上げると。

1:フォーム起動時に『カテゴリ』のコンボボックスにカーソルが当たっている。

2:その状態でTabもしくはEnterを押すと『タイトル』のテキストボックスにカーソルが移動

3:以降同じようにTabないしEnterを押すとすぐ下の項目にカーソルが移動する。

何を当たり前なことを言っているんだと言う方は、きちんと入力フォーマットを上から順番に作ってるのでしょう。 しかし私のように行き当たりばったり作っている人間は、必ずしも上から順番には作成しないのです。

そうするとどういう事が起きるのか。

上述の2のところでカーソルが『タイトル』の所に飛ばずに『レーベル』の所に飛んだりします。

そのような状態になってしまうと入力時にカーソルがどこにあるかわからなくなって作業効率が著しく低下してしまいます。

そのような状態を解消するためにはタブオーダーの設定を変更します。
f:id:ExcelLover:20181125184334j:plain
フォーム上どこでも良いので右クリック→タブオーダーを選択

f:id:ExcelLover:20181125184437j:plain
ここにはカーソルが飛ぶ順番にオブジェクト名が順番に記載されています。

ここでオブジェクト名をフォーム上のコントロールの並びと同じように変更してください。

ただしここに記載されていてもカーソルが飛ばないオブジェクトも存在します。

例えばLabelです。

なぜ飛ばないかと言うとLabelの『TabStop』プロパティの値がfalseになっているためです。
f:id:ExcelLover:20181125184603j:plain
Textboxやcomboboxはこの値がTrueになっているためカーソルが飛ぶようになっています。

この値をfalseに変更するとそのコントロールにはカーソルがTabやEnterでは飛ばなくなります。

手動で選択することは出来ます。

※LabelはTabStopをTrueに変更しても自動的にfalseに戻されます。

まとめ

今回はフォーム上に設置した各種コントロールの設定を確認しました。

次回はフォームに設定したコードを紹介します。