3-2 変数 (2) ―宣言して使う変数―

VisibleFalse にすると、TextTemp は画面から消えてしまうので、HeightWidth, Color などのプロパティにはどんな値を入れても意味がないですね。入れ替えに必要なのは、Text プロパティだけなのです。中継用テキストボックスを使わない、もっとよい方法はないのでしょうか。

ここで、新しい方法を試してみます。まずは、TextTemp を削除してください。TextTemp を削除したので、TextTemp を中継欄に使うことはできなくなりました。そこで、今消した TextTemp のかわりにもっと単純な中継欄を作ります。Private Sub の後に、次のように付け加えてください。

Private Sub CommandSwap_Click()
  Dim temp As Variant
  TextTemp.Text = Text1.Text
  Text1.Text = Text2.Text
  Text2.Text = TextTemp.Text
End Sub

TextTemp はなくなりましたが、これで temp という入れ物ができ、tempTextTemp.Text のかわりをします。このように、新しい入れ物を作るときは「Dim temp As Variant」と書きます。 (後半を省略して「Dim temp」と書くだけで済ませることもできます。)

【基礎課題 3-2】

temp を使って(TextTemp.Text を使わないで)プログラムを完成させるには、どのように変更するといいでしょうか。下の空欄を埋めてプログラムを完成させて下さい。

Private Sub CommandSwap_Click()
  Dim temp As Variant
           = Text1.Text
  Text1.Text = Text2.Text
  Text2.Text =         
End Sub

temp のように値を保存しておく入れ物を「変数」といいます。今の場合 temp は画面に現れない「テキストボックスの Text プロパティ」と考えて結構です。変数の名前は temp でなくとも自由につけても構いませんが、なるべく一目見て内容がわかる名前をつけましょう。

コラム

変数の名前は原則として自由につけて構わないのですが、いくつか例外があります。

  • 英数字 (および「_」) だけで作られる名前でなくてはいけない。記号・空白を含む名前はいけない。(実際には漢字も使えるようですが、一般には使いません。)
  • 数字で始まる名前はいけない。
  • If」や「Sub」など、特別な意味を持つ名前 (予約語と呼ばれます) を使ってはいけない。

temp」という変数を用いることは、プログラムにとって必要充分な機能を提供することになります。余計なものを使わずにこうして必要充分なものを用いるようにすると、プログラムが速くなり、プログラムサイズが小さくなります。