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

VBAでラクしたい ~Part 2~

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

必要な要素を洗い出す

次に、この処理全体で使用する変数・定数について整理してみましょうか。

章の最初の方では、作りながら追加し説明しておりましたが、やはりこの辺も最初の段階で
整理しておいた方が間違いが無くていいです。

まず、これまでに定義したモノを並べてみますと

-------------------------------------------------------------------------------------
<定数>
・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

-------------------------------------------------------------------------------------



以上今回はここまで(( ((( ヽ(;^^)/ スタコラサッサ


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