Visible を False にすると、TextTemp は画面から消えてしまうので、Height や Width, 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 という入れ物ができ、temp が TextTemp.Text のかわりをします。このように、新しい入れ物を作るときは「Dim temp As Variant」と書きます。 (後半を省略して「Dim temp」と書くだけで済ませることもできます。)
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 でなくとも自由につけても構いませんが、なるべく一目見て内容がわかる名前をつけましょう。
コラム変数の名前は原則として自由につけて構わないのですが、いくつか例外があります。
「temp」という変数を用いることは、プログラムにとって必要充分な機能を提供することになります。余計なものを使わずにこうして必要充分なものを用いるようにすると、プログラムが速くなり、プログラムサイズが小さくなります。 |