Top Up

QESS

QESS is a spread sheet application for Android smart phone focusing on effective entry. It has editable keypads.

サンプルレイアウト

概要

キーパッドのレイアウトは自由に編集できます。 ここでは、アプリに含まれる以下のレイアウトのサンプルファイルについて、使い方やコマンド列の意味を説明します。 具体的なレイアウトファイルの記述内容は、それぞれのファイルをExcel等の表計算ソフトで開いて確認してください。

QESSでは、設定から「レイアウト編集モード」にチェックを入れると見ることができます。

Excel等で拡張子が「.csv」であるファイルを編集した場合、CSV形式(カンマ区切り)ではなくTSV形式(タブ区切り)で保存される場合があります。 タブ区切りに変わっている場合は、拡張子を「.tsv」に変えて下さい。

sampleScoring5段階評価を、上から順に入れます。
sampleAttendance出欠記録を、上から順に入れます。
sampleCheckingチェックマークを追加・削除します。
sampleCounter何かを計数します。
sampleCounter2何かを3つに分類して計数します。
sampleLogging履歴を記録します。
sampleQuestionnaireアンケートを記入します。
sampleCashcalc小遣い帳電卓を実現します。
sampleMultimodal音声認識入力、QRコード/バーコード入力、QRコード出力、位置情報取得入力、テキスト読み上げを試すものです。
sampleCommands様々なコマンドを試すものです。
sampleJump条件付き実行やループを試すものです。
sampleFormula数式の実行を試すものです。SUM,COUNTは範囲の両隅を指定してから実行します。
sampleJavaScriptJavaScriptの実行を試すものです。
sampleRpnCalcRPN電卓をJavaScriptを使って実現します。
sampleLogCalc履歴付き電卓をJavaScriptを使って実現します。
nullKeypadキーパッドを表示しません。
sampleBasicCalc基本電卓を実現します。
sampleSciCalc関数電卓を実現します。
sampleMenuCmdコマンド<MENU menuItem>の使用例を示します。
sampleKeyShortcut物理キーボード接続時に有用なキーショートカット設定の例です。

sampleScoring

使用方法

各キーをタッチすると、キーの文字列が現在セルに入ります。「Clear」では空文字が入ります。 そして現在セルが一つ下に移動します。

* ここでは英語モードのサンプルを使っています。 日本語モードのサンプルでは、「Excellent」「Good」「Average」「Fair」「Poor」を 「秀」「優」「良」「可」「不可」と変更していますので、読み替えてください。

レイアウト設定

「Excellent」と表記しているキーはレイアウトファイルにおいて以下のように記述しています。

ButtonTextExcellent
ButtonCommand<CLR>Excellent<DOWN>
コマンドの意味現在セルの内容を消去→現在セルに文字列「Excellent」を追加→下のセルへ移動
「Good」「Average」「Fair」「Poor」キーも同様の記述です。当然ながら表示文字列と入力文字列は異なっても構いません。日本語も可能です。

「Clear」では文字列の追加が抜けています。

ButtonTextClear
ButtonCommand<CLR><DOWN>
コマンドの意味現在セルの内容を消去→下のセルへ移動

sampleAttendance

使用方法

各キーをタッチすると、キーの文字列が現在セルに入ります。「Clear」では空文字が入ります。 そして現在セルが一つ下に移動します。

* ここでは英語モードのサンプルを使っています。 日本語モードのサンプルでは、「Attend」「Abcent」「Late」「Clear」を 「出席」「欠席」「遅刻」「クリア」と変更していますので、読み替えてください。

レイアウト設定

上記のsampleScoringとよく似た記述です。例えば、「Excellent」と表記しているキーはレイアウトファイルにおいて以下のように記述しています。

ButtonTextAttend
ButtonCommand<CLR>Att.<DOWN>
コマンドの意味現在セルの内容を消去→現在セルに文字列「Att.」を追加→下のセルへ移動

sampleChecking

使用方法

「Chk」キーをタッチすると、チェックマーク1つを現在セルに追加します。 「Unchk」キーは現在セルのチェックマーク1つを外します。 矢印キーは現在セルを移動します。

レイアウト設定

レイアウトファイルに以下のように記述しています。

ButtonTextChkUnchk
ButtonCommand<BS>
コマンドの意味「✓」マークを現在セルに追加最後の1文字を消去する(BackSpace)

移動に関するキーは以下のように記述されています。

ButtonText<^>v
ButtonCommand<LEFT><UP><RIGHT><DOWN>
コマンドの意味左セルへ移動上セルへ移動右セルへ移動下セルへ移動
キーの表示文字には「>」などではなく「→」などを使うこともできます。

sampleCounter

使用方法

「+」キーは現在セルの値をインクリメント(プラス1)します。 「-」キーはデクリメント(マイナス1)します。 「CLR」キーは現在セルの内容を消去します。

レイアウト設定

「+」キーは、レイアウトファイルにおいて以下のように記述しています。

ButtonText+
ButtonCommand+1<EVAL>
コマンドの意味文字列「+1」を現在セルに追加→算術式として評価

現在セルの内容が「2」だった時には、文字列追加で「2+1」となり、それを評価することで、セルの値は「3」となります。 現在セルの内容が空だった時は、文字列追加で「+1」となり、それを評価することで、セルの値は「1」となります。 「-」キーの記述は「+1」が「-1」に代わります。「CLR」キーは現在セルの内容を消去するコマンド「<CLR>」が記述されています。

sampleCounter2

使用方法

「A」、「B」、「C」の各列の「+」、「-」キーは、スプレッドシート上のA,B,C列第一行の値をインクリメント・デクリメントします。 「Clr」は3つのセルの内容を消去します。

レイアウト設定

左上の「+」キーは、レイアウトファイルに以下のように記述しています。

ButtonText+
ButtonCommand<GO A1>+1<EVAL>
コマンドの意味A1セルに移動→「+1」を追加→算術式として評価

上記のsampleCounterと同じ処理にセル移動が加わっています。 他の「+」「-」キーの記述は、増減+/-と移動先A1/B1/C1が異なります。

sampleLogging

使用方法

「Start」キーは、startの文字列と入力した時間を横並びのセルに入れます。 「Stop」キーは、stopの文字列と入力した時間を横並びのセルに入れます。 「Clear」キーは、現在セルの内容を消去します。

レイアウト設定

「Start」キーはレイアウトファイルに以下のように記述しています。

ButtonTextStart
ButtonCommand<CLR>start<RIGHT><CLR><NOW TIME><DOWN><LEFT>
コマンドの意味現在セルをクリア→文字列「start」をセルに追加→右に移動→セルをクリア→現在時間をセルに追加→下に移動→左に移動
「Stop」キーは、追加する文字列が「stop」に代わっています。 「Clear」キーは、現在セルのクリアコマンド「<CLR>」を記述しています。

sampleQuestionnaire

使用方法

「Sex」「Age」「Q1」「Q2」「Q3」「Q4」の各キーは、設問と答えの候補を表示し、利用者の回答をセルに入れます。 「Sex」「Age」については、回答の文字列そのものを入れます。 「Q1」「Q2」「Q3」「Q4」については回答のインデックス番号を入れます。 「AnswerAll」では、全ての設問と回答を順に繰り返します。

レイアウト設定

「Sex」キーはレイアウトファイルに以下のように記述しています。

ButtonTextSex
ButtonCommand<GO RC1><CLR><LIST Sex>
コマンドの意味RC1セル(同じ行の第1列)に移動→セルをクリア→名称がSexのリストを表示し、選択した項目を現在セルに追加

ここで使うリストは、同じレイアウトファイルに以下のように記述します。

SexMale or Female?MaleFemaleOther
第1列はリストの名称、第2列はリストのタイトル、第3列以降が選択項目です。「Age」キーも同様な記述です。

「Q1」以降のキーでは、<LIST name>の代わりに<LISTN name>を使っているため、 セルに入るのはインデックス番号(ゼロ開始)になります。 「AnswerAll」キーには、これらのキーのコマンドを順に並べて記述しています。

sampleCashcalc

使用方法

一般的な電卓です。また「Memo」を使うと支出の項目と日付が入力できます。 「M+」(Memory Plus)、「M-」(Memory Minus)、「MR」(Memory Recall)、「MC」(Memory Clear)はメモリ機能です。E1セルにメモリ値を表示します。

レイアウト設定

レイアウトファイルにおいて、数字、演算子、小数点、括弧のキーは、そのままの記述です。 キーをタッチすると、その文字をセルに追加することで算術式を作成します。

ButtonText789\u2797
ButtonCommand789/
コマンドの意味「7」を追加「8」を追加「9」を追加「/」を追加
割り算演算子などの表示文字はUnicode番号で記述しています。

ただし「.」は、数値型のセルに追加しても表示が変化しないので、セルを文字列型にしてから追加します。 「0」も同様の理由で、セルを文字列型にしてから追加します。

ButtonText0.
ButtonCommand<TYPE STR>0<TYPE STR>.
コマンドの意味セルを文字列型に変更→「0」を追加セルを文字列型に変更→「.」を追加

「=」キーは、セルの移動と算術式の評価を行います。

ButtonText=
ButtonCommand<RIGHT><CLR><EVAL R[0]C[-1]><DOWN><LEFT>
コマンドの意味右セルへ移動→セルをクリア→左セルを評価→下セルへ移動→左セルへ移動
算術式記述のセルはそのままにして、右のセルに式の評価結果を入れています。 ここで「R[0]C[-1]」は同じ行で一つ左の列にあるセルを意味します([0]を省略してRC[-1]とも書けます)。 評価結果を入れたら、次の行の入力位置に移動します。

「Memo」キーは支出項目と日付を入れます。

ButtonTextMemo
ButtonCommand<CLR><LIST Expenses><RIGHT><CLR><NOW DATE>
コマンドの意味セルをクリア→リストExpensesを表示して選択項目を入力→右セルに移動→セルをクリア→今日の日付を入力
リストExpensesは以下の記述です。
Expensesexpensesfoodscommodityrecreationcloses...

「M+」「M-」「MR」「MC」のキーは、電卓のメモリ機能を実現します。

ButtonTextM+
ButtonCommand<SETV @val><GO E1><CLR><GET @mem>+<GET @val><EVAL><SETV @mem><GO BACK><DOWN>
コマンドの意味セル値を変数@valにセット→E1セルに移動→セルをクリア→変数@memを得てセルに追加→文字「+」をセル追加→変数@valの値を得てセルに追加→セルを評価→セル値を変数@memにセット→直前セルへ戻る→下セルへ移動
変数@memに現在のメモリ値を保持します。「M+」キーは、現在セルの値とメモリ値をE1セル内で加算して、@memに入れます。 他のキーも同様な操作です。

メモリ機能はJavaScriptによる記述に変更しました。

sampleMultimodal

使用方法

「VoiceIn」は音声認識入力です。「VoiceInSeq」はその繰り返しです。 「QRcodeIn」はQRコード入力です。「QRcodeOut」はQRコード出力です。 「Location」は位置情報入力です。現在位置の緯度経度を「37.421998333333335,-122.08400000000002」の形で入力します。 検出にはGPSまたはNetworkを使います。Network使用の方が低消費電力で低精度です。 「TripMemo」は位置情報と日時、およびVoice認識によるメモの入力です。 「WebSearch」は、現在セルの内容をWeb(GoogleSearch)で検索します。 緯度経度のセルで実行すると地図を、URLのセルで実行すると対応ページを表示します。 「SpeakOut」は現在セルの内容を読み上げます。範囲指定があれば範囲内を読み上げます。

レイアウト設定

ButtonTextVoiceInQRcodeInLocationWebSearch
ButtonCommand<VOICE><DOWN><QRCODE><DOWN><LOCATION><DOWN><WEB><DOWN>
コマンドの意味音声認識入力→下セルへ移動QRcode入力→下セルへ移動位置情報入力→下セルへ移動現在セル内容をWeb検索→下セルへ移動
これらは該当処理を呼び出し、その処理が終わると次のセルへ移動します。

「VoiceInSeq」では、繰り返しループの中に上記の「VoiceIn」の処理を入れています。 「QRCODE OUT」は、該当のコマンドを実行します。

ButtonTextVoiceInSeqQRcodeOut
ButtonCommand<LBL a><VOICE><DOWN><JMP a><QRCODE OUT>
コマンドの意味ラベルaをセット→音声認識入力→下セルへ移動→ラベルaへ飛ぶQRコード出力

「TripMemo」は、位置情報入力、日時入力、音声認識入力をセルを移動しながら順に実行します。「SpeakOut」は該当コマンドを実行します。

ButtonTextTripMemoSpeakOut
ButtonCommand<LOCATION><RIGHT><NOW DATETIME><RIGHT><VOICE><GO R[1]C[-2]><SPEAK>
コマンドの意味位置情報入力→右セルへ移動→日時入力→右セルへ移動→音声認識入力→1つ下、2つ左のセルに移動テキストを読み上げる

sampleCommands

使用方法

各種のコマンドを試します。

レイアウト設定

レイアウトファイルには、キーに表示しているコマンドを記述しています。コマンドの意味はHelpを見てください。 なお矢印表示にはUnicodeを使っています。

sampleJump

使用方法

各種の条件分岐の例を試します。

「If=A1 Then」は条件成立時にのみ処理する条件分岐の例です。 現在セルの内容がA1セルと等しいときに「Same」と表示し、等しくない場合は何もしません。

「If =A1 Then Else」は、条件成立と不成立の時に別々の処理を行う条件分岐の例です。 現在セルの内容がA1セルと等しいときに「Same」と表示し、等しくない場合は「Diff」と表示します。

「For x=1,10」は一定回数ループの例です。現在セルから縦に10個のセルに、文字列「AA」を入れます。

もう一つの「For x=1,10」は、現在セルから縦に10個のセルに、数値をインクリメントしながら入れます。

「For x=1,3;y=1,5」は2重ループの例です。現在セルから縦に5個、横に3個のセルに文字列「AA」を入れます。

「While x<=10」は、不定回数ループの例です。変数が10になるまでインクリメントしながら繰り返します。

レイアウト設定

「If=A1 Then」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextIf =A1 Then
ButtonCommand<JNE A1 x><RIGHT><CLR>Same<LBL x>
コマンドの意味現在セルがA1セルと等しくないならばラベルxへジャンプ→ 右セルへ移動→セルをクリア→文字列「Same」をセルに追加→ラベルx

「If =A1 Then Else」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextIf =A1 Then Else
ButtonCommand<JNE A1 x><RIGHT><CLR>Same<JMP y><LBL x><RIGHT><CLR>Diff<LBL y>
コマンドの意味現在セルがA1セルと等しくないならばラベルxへジャンプ→ 右セルへ移動→セルをクリア→文字列「Same」をセルに追加→ラベルyへジャンプ→ ラベルx→右セルへ移動→セルをクリア→文字列「Diff」をセルに追加→ラベルy

「For x=1,10」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextFor x=1,10
ButtonCommand<JLMT x 10><LBL x><CLR>AA<DOWN><JMP x>
コマンドの意味ラベルxへのジャンプ回数を10に制限→ラベルx→セルをクリア →文字列「AA」をセルに追加→下セルへ移動→ラベルxへジャンプ

もう一つの「For x=1,10」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextFor x=1,10
ButtonCommand<CLR>1<JLMT x 9><LBL x><DOWN><CLR>R[-1]C+1<EVAL><JMP x>
コマンドの意味セルをクリア→「1」をセルに追加→ラベルxへのジャンプ回数を9に制限 →ラベルx→下セルへ移動→セルをクリア→文字列「R[-1]C+1」をセルに追加→ セルを評価→ラベルxへジャンプ
「R[-1]C」は、一つ上の行で同じ列のセルを示します。 よって「R[-1]C+1<EVAL>」は、上セルの値にプラス1した値を計算して現在セルに入れています。

「For x=1,3;y=1,5」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextFor x=1,3;y=1,5
ButtonCommand<SETR @s><JLMT x 3><LBL x><JLMT y 5> <LBL y><CLR>AA<DOWN><JMP y><GO @s><RIGHT><SETR @s><JMP x>
コマンドの意味現在セルの参照文字列(例:A1)を変数@sにセット→ラベルxへのジャンプ回数を3に制限 →ラベルx→ラベルyへのジャンプ回数を5に制限→ラベルy→セルをクリア→文字列「AA」を追加→ 下セルへ移動→ラベルyへジャンプ→変数@sの参照するセルへ移動→右セルへ移動→ 現在セル参照を変数@sにセット→ラベルxへジャンプ

「While x<=10」と表示のキーはレイアウトファイルで以下のように記述しています。

ButtonTextWhile x<=10
ButtonCommand<GO B1><CLR>10<GO BACK><CLR>0<JLMT x 100> <LBL x><DOWN><CLR>R[-1]C + 1<EVAL><JLT B1 x>
コマンドの意味B1セルに移動→セルをクリア→文字列「10」を追加→元のセルへ戻る→ セルをクリア→文字列「0」を追加→ラベルxへのジャンプ回数を100に制限→ラベルx→ 下セルへ移動→セルをクリア→「R[-1]C+1」を追加→セルを評価→現在セルの値がB1セルより小さいならばラベルxへジャンプ
B1セルにループ回数を設定しています。その後、下方への移動とインクリメント値の追加を行います。 これを、セルの値が、B1セルの値より小さい間、繰り返します。 なお、ジャンプ回数の制限を100と設定しているのは、用心のためであり、省略できます。

sampleFormula

使用方法

各種のExcel数式の例を試します。

「f(cell)」は、現在セルに対してリストから選択したExcel数式を適用します。

「Set Corners」は領域を指定します。領域の片隅でキータッチ、もう一方の片隅で再度キータッチします。下の「f(range),f(rows),f(cols)」を行う前に領域を設定します。

「Help」は、ヘルプを表示します。

「f(range)」は、指定した領域に対してリストから選択したExcel数式を適用します。

「f(rows)」は、指定した領域に含まれる行に対してリストから選択したExcel数式を適用します。

「f(cols)」は、指定した領域に含まれる列に対してリストから選択したExcel数式を適用します。

レイアウト設定

「f(cell)」キーはレイアウトファイルで以下のように記述しています。

ButtonTextf(cell)
ButtonCommand<SETV @x><CLR><LIST cellfunc>(<GET @x>)<TYPE FRML>
MeaningSet cell value to @x→Clear the cell→Show list 'cellfunc' (and wait the input)→add '('→Get @x and add to the cell→add ')'→Change cell type to formula

セルの文字列は、「cellfunc + '(' + @x + ')'」のように作られます。 ここで「cellfunc」は 下のように定義したリストから選択します。

cellfuncCell Functionssqrtsincostanasinacosatanexplnloglog10

「Set Corners」キーはレイアウトファイルで以下のように記述しています。

ButtonTextSet Corners
ButtonCommand<CLR><RANGE>
MeaningStart/end the assignment of the range
コマンド「<RANGE>」は、範囲指定を開始します。また範囲指定中であれば範囲を固定します。

「f(range/rows/cols)」キーは「f(cell)」キーと類似の記述です。

sampleJavaScript

使用方法

JavaScriptとDialogの例を試します。

解説はHelpを参照してください。

sampleRpnCalc

使用方法

RPN(Reverse Polish Notation)形式の電卓を実現します。 RPNは演算子を後置する記法であり、HP電卓で使われました。 「2+3」を「2 3 +」と表記します。 この電卓では「[2] [Enter] [3] [+]」とタッチして計算します。 関数群はレイアウトファイルで編集できます。

sampleLogCalc

使用方法

履歴付きの電卓を実現します。 演算毎に1行を使って結果を記録します。 関数群はレイアウトファイルで編集できます。

nullKeypad

使用方法

キーパッドが無表示になります。キーパッドが不要な時に選択します。

sampleBasicCalc

使用方法

単純な基本電卓を実現します。 演算式、演算結果ともに現在セルを使います。 算術式を使って実現しています。

sampleSciCalc

使用方法

関数電卓を実現します。 演算式、演算結果ともに現在セルを使います。 関数と定数の一覧はレイアウトファイルで編集できます。 Excel数式を使って実現しています。

sampleMenuCmd

使用方法

<MENU menuItem>の使用例を示します。

sampleKeyShortcut

使用方法

キーパッドは何も表示しません。キーショートカットのみを定義しています。 物理キーボードを接続したときに有用です。

具体的なショートカットは、レイアウト編集モード(メニュー>設定で選択)で確認して下さい。 「Ctrl+C」(コピー)、「Ctrl+V」(貼り付け)、「Alt+M」(オプションメニュー表示) などを記述しています。


レイアウトを考案したらメールでお知らせ頂けると幸いです。有用なレイアウトは、このページで公開します。