必要な要素を洗い出す
次に、この処理全体で使用する変数・定数について整理してみましょうか。
章の最初の方では、作りながら追加し説明しておりましたが、やはりこの辺も最初の段階で
整理しておいた方が間違いが無くていいです。
まず、これまでに定義したモノを並べてみますと
-------------------------------------------------------------------------------------
<定数>
・cInitRow 【起動時のレコード行位置】
・cMidasiRow 【見出し行位置】
・cNameDataCol 【氏名データの列番号】
・cMailDataCol 【メールアドレスデータの列番号】
・cBirthDataCol【誕生日データの列番号】
<変数>
・LngRecRow 【現在のレコード行位置(レコード番号)】
-------------------------------------------------------------------------------------
以上ですが、あと何が必要でしょうか?
"全体のレコード数"を表示しますので、それを数えてとっておく器が必要になってきますよね。
こういうのはさて"変数"でしょうか?それとも"定数"でしょうか?
ここまで進んでこられた皆様は大体お分かりですよねd(^-^ )
数える度に値は変化しますから、そういう値を格納するのは"変数"です。
ということで下記を追加しましょう
・LngAllRecCnt 【全体のレコード数】
あとは特に今すぐ必要ってわけではないんですけど、後々応用が利かせやすいように
・フォームを起動するボタンのある場所(シート名)
・データを登録する場所(シート名)
を定義しておくことにしましょう。
なぜこれをやるかというと、例えばよく業務のシステムなんかを見ると、機能毎に複数の画面
を切り替えて使ってたりしますよね。今は簡易的な例として、データを入れ込むシートの横に
起動ボタンをつけちゃたりしてますけど、実際こういう形は少ないです。
むしろ起動画面とデータが登録されるエリアは別々になっている方が多いでしょう。
ところが、ここまで書いた内容ですと「どこにデータを書くの?」という指定が省略されてい
ますよね。これは「起動した場所(シート)にあるセルにデータを入れていく」から有効なの
であって、「起動した場所と違う場所(シート)にデータを登録したい」場合には、記述を省略
してはイケナイのです。
というような理由から、この辺だけは考慮した造りにしておくことにしましょう。
・cFrmOpnSheet 【フォームを起動する場所(シート名)】
・cDatWriSheet 【データを登録する場所(シート名)】
考えてみて下さいとか言う前にいきなり書いてしまいましたが(^^;)
おわかりいただけますよね?
それと略称も何を意味しているかは、ウスウス理解できてしまうとは思うのですが・・・。
念のため書くと
Cnt ・・・Count(カウンタ・数える・件数等の意味合いで使用)
Dat ・・・Data
Opn ・・・Open(起動・開く等の意味合いで使用)
Wri ・・・Write(書き込み・記述する・登録する等の意味合いで使用)
Sheet・・・シート・ワークシート
#この辺についても参考資料として表にまとめた方がいいかなぁ・・・。
あとで準備できたらコンテンツの1つとして追加します >略称表
以上でとりあえずは必要なモノが揃ったような気がします(^_^;
あとはこれらをフォームモジュールのGeneralで宣言すればOKですね。
-------------------------------------------------------------------------------------
'====== 定数宣言部 ======
'*** 起動時のレコード行位置 ***
Const cInitRow = 2
'*** 見出し行位置 ***
Const cMidasiRow = 1
'*** データ列の定義 ***
Const cNameDataCol = 1 '氏名
Const cMailDataCol = 2 'メールアドレス
Const cBirthDataCol = 3 '誕生日
'*** フォームを起動する場所(シート名)***
Const cFrmOpnSheet = "Sheet1"
'*** データを登録する場所(シート名)***
Const cDatWriSheet = "Sheet1"
'====== 変数宣言部 ======
'*** 現在のレコード行位置 ***
Dim LngRecRow As Long
'*** 全レコード件数 ***
Dim LngAllRecCnt As Long
-------------------------------------------------------------------------------------
以上今回はここまで(( ((( ヽ(;^^)/ スタコラサッサ
|
|
TOP > VBAでラクしたい ~Part 2~
|