No.3ベストアンサー
- 回答日時:
では簡単な例を説明してみます。
フォームのkeypressのイベントでどのキーが押されたかは分かります。
押された回数をカウントすれば基本的にタイプ数は分かります。
"例えば"は(tatoeba)で問題ないのですが"ふ"の場合(hu/fu)でもいいですし"だった"は(datta/daltuta/daxtuta)でもいいのですよね。これがローマ字入力の判定の難しさだと思います。
"例えば"のチェックルーチン(めっちゃいい加減版)エンターキーは不要と判断しました。
なお、bが文字を打った回数。cが文字数という事で参考にして下さい。
Dim wk(5) As String
Dim a As Integer
Dim b As Integer
Dim c As Integer
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim chk As String
chk = LCase(Chr(KeyAscii))
If Mid(wk(0), a, 1) = chk Then
a = a + 1
End If
b = b + 1
If a > c Then
MsgBox "ok"
End If
End Sub
Private Sub Form_Load()
wk(0) = "tatoeba"
a = 1
b = 0
c = Len(wk(0))
End Sub
さっそくありがとうございます。
しかもプログラム付で・・・。
プログラムはある程度は理解しているものの
初めてみる関数ばかりで、苦戦中です。
しばらくこの参考プログラムを先生に聞いて理解してみます。
また、新たに質問させてもらうと思いますが
その時はよろしくお願いします。
No.2
- 回答日時:
質問の意味をいまいち理解してませんが・・・
判定を行うタイミングが、このソフトの鍵となると思います。
複数行あろうとなかろうと一緒です。
複数行ある文章もようは改行コード(定数:vbCrlf)を含んだ一行と置き換えることができます。
簡単な比較ロジックは
1.テキストボックスのChangeイベントを認識
2.入力文字と入力文字数を得る
3.正解例の頭からその文字数文を得る
4.それらを比較
です。
しかし、文章の入力を終えてからの判定は並大抵ではありません。
一度判定ロジックを組んだ経験があるのですが、結局かなりの駄作になってしまいました。
例えば、余計な文字が1文字入ったら、どうするのかというだけで様々なパターンが想像つきます。
それ以外に2行目と3行目が入れ違いになっていた場合にも、複数の処理に分かれます。
これらを全て兼ね備えたプログラムは、人工知能開発ぐらいのレベルになると思います。。。
ですので、あまり入力し終えてからの判定はお奨めできません。
一度、市販されてるタイピングソフトではなく、フリーでダウンロードできるタイピングのソフトを見て研究してみては?
はずしてたなら、ごめんなさい。
参考URL:http://www.vector.co.jp/vpack/pickup/win/edu/com …
回答ありがとうございます。
私たちが作成しようとしているソフトは下記のyanmaaさんのお礼に記した通りです。
判定のタイミングとしてはローマ字、1文字ずつ判定させるつもりでいます。
表示は1行をローマ字で表示させて、先頭から順にタイピングです。
一致していればその文字が消え、次の文字のタイプという感じです。
その際、1行終わるまでにタイプした数と誤った入力をカウントさせたいのです。
とりあえず、教えていただいたURLでDLしてみて研究してみます。
また、よろしくお願いします。
No.1
- 回答日時:
プログラムを作るのが卒業研究なら基本的なプログラミング技能を有していると判断します。
例えば
そこで
みなさんに
お聞き
したいのですが
というタイピングを出題するとして
どのようにキータイプさせ、どのような判定を下すのでしょうか?
OKなら次の行、違うなら元の行ですね。
後は自分で考えて何処までやって何処が分からないのか説明してからにしてね。
回答をありがとうございます。
yanmaaさんの言われるプログラム技能は有しています。
私たちが作っているタイピングプログラムは
例えば
そこで
みなさんに
お聞き
したいのですが
の5行で例えると
1.『例えば』を日本語表示とローマ字表示する。
例 例えば
tatoeba
2.「t」からタイプ開始 → Enterキーを押すと1行終了
その際、先頭の文字とキーボードからタイピングした文字が同じなら同時にローマ字を一文字ずつ消していく。
なおかつ、Enterキーを押すまでに「タイプした数」と「誤った数」をカウントする。
3.これを5回繰り返す。
というのを考えています。
こういうプログラムをVBで作成するのは可能でしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 就職 タイピング技能検定の特級って履歴書に書いたほうがいい資格ですか? 1 2023/04/06 21:00
- Excel(エクセル) 列を自動で追加したい 3 2022/07/11 12:58
- 中途・キャリア 事務系職種の方に質問 タッチタイピング(ブラインドタッチ)について 6 2022/12/11 07:21
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- 中途・キャリア 中途面接について質問です。 応募の段階で2回ほど面接があると言われ、無事どちらとも通過し、採用内定と 3 2022/06/24 02:43
- マンガ・コミック 手塚治虫「ブラックジャック」の最終話「人生という名のSL」の収蔵巻は? 1 2023/07/15 12:32
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- マウス・キーボード タイピングについて。 1 2023/01/23 06:52
- マウス・キーボード タイピングについて。 1 2023/01/21 08:09
- 発達障害・ダウン症・自閉症 精神障がい者の就職 2 2023/05/10 04:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
gas 全角数字を半角数字に変換
-
VC#でテキストボックスに変数の...
-
VB.NET2003 テキストボックスに...
-
エクセル 半角英数6文字以上 ...
-
Access VBAで、数字だけをチェ...
-
C#でTextBoxに数値のみ入力可能...
-
VBAによる第3、4水準文字の判定...
-
Excel VBA カタカナ セル判定...
-
禁止文字チェック
-
正規表現について
-
ハイフンだけ置換したい。
-
「終了していない文字列型の定...
-
正整数の半角数字かどうか判定する
-
初期入力モードを半角カタカナ...
-
エクセルVBA/ Formatで文字列が...
-
JavaScriptで ブラウザの閉じる...
-
1つのVBAコードをすべてのコア...
-
if(1){...}とはどういうことで...
-
JSPの処理の途中で、JavaScript...
-
javascriptでsjisの文字列からu...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「終了していない文字列型の定...
-
VB.NET2003 テキストボックスに...
-
Access VBAで、数字だけをチェ...
-
gas 全角数字を半角数字に変換
-
VBAによる第3、4水準文字の判定...
-
正整数の半角数字かどうか判定する
-
ハイフンだけ置換したい。
-
エクセルVBA/ Formatで文字列が...
-
Visual Basic 6.0 のテキストボ...
-
エクセル 半角英数6文字以上 ...
-
JavaScriptに関する質問です。 ...
-
禁止文字チェック
-
正規表現について
-
外字のチェック
-
Javascript 全角カナ+半角スペ...
-
Excel VBA カタカナ セル判定...
-
文字認証の問題
-
入力された文字を1文字ずつチ...
-
C#でTextBoxに数値のみ入力可能...
-
VC#でテキストボックスに変数の...
おすすめ情報