■タイピングって?作成講座1では、タイピングゲームを作成していきます。タイピングゲームをご存じないということはないと思いますが、一応簡単に説明します。
タイピングというのは、キーボードのキーを入力する動作の通称です。いわゆる、文字の入力ですね。タイピングゲームはその名の通り、このキー入力をゲーム感覚で楽しんでしまおうというものです。
格闘ゲームやアクションゲームでは、十字キーの入力を素早く正確に行うことで、カッコいい挙動や必殺技を繰り出すことができますね。タイピングゲームもこれと似たような感覚で、正確に素早くタイピングすることで、そこに楽しさを見出させてくれます。
しかも、ゲームを楽しみながら、キー入力の練習にもなるのですから一石二鳥ですね。
今回お届けするタイピングゲームの講座では、最終的には英単語などの入力を練習できる、簡単なタイピングゲームが完成する予定です。始めから順番に解説していきますので、がんばってついてきてくださいね。
■文字と文字列さて、タイピングゲームは文字を入力するゲームである、ということはわかりましたね。そして、文字の入力に関するプログラムを組むためには、まず、しっかりと文字列の操作について基礎を固めておく必要があります。
まず、『文字』という言葉と『文字列』という似たようなふたつの単語、この違いをしっかりと理解しておきましょう。
『文字』とは、単純にひとつの文字を表します。ですから、
一文字だけです。この点に注意しましょう。これに対して『文字列』は、
複数の文字を含む一連の文などを表します。
文字は一文字、文字列は複数の文字、これを覚えておきましょう。簡単ですね。
さて、文字と文字列の違いはわかりましたね。
続いては、文字列を扱う変数についてです。これは講座内で何度も出てきていますからわかりますね。文字列を扱うことができる変数の型は『
String
型 』ですね。通称、文字列型とも呼ばれている変数の型です。
文字列型、という名称からもわかるように、複数の文字を入れておくことができます。もちろん、なんの文字も入っていない状態にしておくこともできます。
また、文字列をプログラムの中で扱う場合に注意しなくてはならないのが、ダブルクォーテーションを使った文字列の表記についてです。
VBAを始め、ほとんどのプログラミング言語では、文字列をダブルクォーテーションで囲まなくてはいけないことになっています。
ですから、次のような表記は間違いです。
Dim S As String
S = こんにちは
もし、このようにコードを記述してしまっても、エラーにはなりません。
しかし、『こんにちは』という部分は、文字列データではなく、変数だと判断されます。『こんにちは』という名前の変数になってしまうのです。
これを正しく文字列データとして変数に格納するには、次のように、ダブルクォーテーションを使って、文字列をくくります。
Dim S As String
S = "こんにちは"
こうすると、変数 S には『こんにちは』という文字列が代入されます。
また、何も文字列がない状態を表す場合にも、ダブルクォーテーションを使います。
ダブルクォーテーションをふたつ連続で書くと、なにも文字がない状態を表します。
Dim S As String
S = ""
上記のように記述すると。変数 S には長さゼロの文字列が入ります。つまり、何も文字列がない状態になるわけですね。文字列型の変数を初期化したいときや、
If
文を使って文字列がカラではないかどうか調べるときなど、結構使う機会もあると思います。
ダブルクォーテーションは文字列を扱うために常に必要ですので、これを機会にしっかり覚えてしまいましょう。
■何文字あるの?さて、先ほども書いたように、文字列型の変数は複数の文字を入れておくことが可能です。しかし、その中身にどのくらいの文字が含まれているのか、その文字数を知りたいことがよくあります。
例えば、○○文字以内でパスワードを入力、とかよくありますね。ああいった場合には、必ず文字列がいったい何文字で構成されているのかを調べる必要があります。
このようなケースでは、『
Len
関数 』を使って、文字列の文字数を調べることができます。使い方は簡単で、文字数を調べたい文字列を、引数に渡すだけです。
使用例は以下のようになります。
Sub LenTest()
Dim S As String
S = Len("いろはにほへと")
MsgBox S
End Sub
このコードを実行すると、何文字あるのかメッセージが表示されます。

ポイントは、先ほども書いたように、文字列を扱う場合のダブルクォーテーションの使い方です。上記のコードでは、キチンと文字列をダブルクォーテーションで囲んでいますね。
さて、
Len
関数に渡す引数には、変数を指定することもできます。
Sub LenTest()
Dim S As String
Dim Word As String
Word = "ちりぬるを"
S = Len(Word)
MsgBox S
End Sub
今回の場合は変数を渡しているので、変数をダブルクォーテーションで囲んではいませんね。ちょっとややこしいですが、文字を直接使う場合にはダブルクォーテーションが必要です。間違えないように気をつけましょう。
■文字列を連結する、&演算子数字の足し算をするときには、今更ですが、『+演算子』を使いますね。
では、文字列をつなげたいときには、どうしたらいいのでしょうか。
実は、こんなときに役に立つのが『&演算子』です。
この演算子を使うと、ふたつ以上の文字列を、ひとつに繋げることができます。
Dim S As String
S = "いろはにほへと" & "ちりぬるを"
MsgBox S
このようにすると、最終的に『いろはにほへとちりぬるを』という文字列が変数 S の中に入ることになります。
文字列を連結する場合には、『+演算子』などではなく『&演算子』を使うということを覚えておきましょう。これは、文字列を扱う場合の基本です。
■まとめさて、今回は文字列の基礎的な部分を中心に解説しました。
文字列とは、複数の文字を含んでいるものを指し、変数の型には
String
型を用います。そして、文字列を扱うときにはダブルクォーテーションを使わなくてはいけません。さらに、文字数を調べたり、文字列を連結することもできるのでしたね。
タイピングゲームを作成するにあたって、これらの文字列に関する基礎的な知識は少なからず必要な場面が出てきます。
今までは適当に済ませていたかもしれませんが、ここでしっかりと理解しておきましょう。
次回は文字列の情報を取得する様々な方法や、文字列を加工する際のテクニックなどを紹介する予定です。お楽しみに。
■格言
ダブルクォーテーションで文字列を扱う
文字数を調べるには Len
関数
文字列の連結には&演算子を使うどれも基本的なことばかりですが、大事です。
- 関連記事
-