マクロでいこう! ~ Excel活用HomePage ~

VBAでラクしたい ~Part 2~

こちらのコーナーでは、VBAの使い方を中心にご紹介していきます。
作者自身の経験から書いておりますので、本とかとは違ったコトを
書いてるトコロもあるかもしれません。 そういう場合は、良さそうな方を信じましょう(^_^;
TOPVBAでラクしたい ~Part 2~ > データを1件登録する

データを1件登録する

今回こそはセルにデータをセットせねば(^-^;

ということで、いきなり本題に入ります。

ある特定のセルに値をセットする方法は、以前にもやりましたね。
例えばセルA1に あ という文字をセットするには

Cells(1,1).Value = "あ"

とかいうように書きます。

フォームから入力された値をセットする時も、これと同様のやり方になります。
問題は「テキストボックスに入力された値を取得するにはどうすればいいか」です
よね d(^-^

とりあえず「氏名」を入力するテキストボックス(TxtName)を例にとります。

まずはそのテキストボックスをクリックしてみて下さい。
おそらく左横に「プロパティ」というものがズラーっと表示されていると思います。

先に答を言ってしまうと、そのプロパティ一覧のずーっと下の方に "Text"っていう
プロパティがあると思います。そこに何か文字を入れてみて下さい。

どうですか?氏名のテキストボックスに、今打ち込んだ文字が表示されましたよね。

そうです。テキストボックスから入力文字のやりとりをするには、TEXT プロパティ
を使えばいいのです(^-^

書き方は上の Cells と同じです。Cells の場合は Value っていうプロパティに
対して値をセットすることにより、セルに値を表示させています。

今やった"テキストボックスに文字を入れる"っていう処理も同様に

TxtName.Text = "あ"

と書けばいいわけです(^-^

ということは、逆にテキストボックスに入っている値を変数(仮にStrTempとします)
に入れるならば

StrTemp = TxtName.Text

とすればいいですよね。

ここまで来たらもう出来てしまいますね。
見出しの下の行位置にデータを1件入れる処理は

'*** 行位置の初期化 ***
LngRecRow = cInitRow

'*** データ登録処理 ***
Cells(LngRecRow,cNameDataCol).Value = TxtName.Text
Cells(LngRecRow,cMailDataCol).Value = TxtEmail.Text
Cells(LngRecRow,cBirthDataCol).Value = TxtBirthday.Text

というようになります。

*** 行位置の初期化 *** の部分で、最初の行位置を決めているところを
見逃してはいけません。

試しにその行の頭に ' をつけて一時的にコメントにして実行してみて下さい。
そうするとこんなんなります↓(^-^;
画面01

なぜかと言えば、変数というのは初期状態では 0 (文字列の場合は空白)が
入っているからです。
セルに値を入れるのに"0行目"なんて指定は出来ないですよね(^-^;
なのでここは 1 以上の数値が入ってないと、その時点でエラーで落っこちて
しまいますのでご注意を。

さて次回は、続けてデータを登録する動きを作ってみるといたしましょう。


以上、今回はここまで~(^^)/~


TOPVBAでラクしたい ~Part 2~
Copyright (C) 2006 マクロでいこう!. All Rights Reserved.