<関数を自作できなくなった自分?>
こんにちは、三流プログラマーのKen3です。
私のいつものくだらないお話です。
笑ってやってください。
今回、私のもう一つのメルマガ、
三流PG Excel VBA/Access つまみ食い
で自作した関数を作って自分なりに思ったことを書きます。
みなさんのご意見をメールで送っていただけると助かります。
Excel VBAにあるかもしれないが、
指定した範囲を比較する関数を作成してみました。
In message "[三流PG 解説 No.029][Excel VBA] Range を受け取り範囲をチェックする"
'----
Sub testmain()
If chkRANGE(Range("B2:C5"), Range("E4:F7")) = True Then
MsgBox "二つのエリアは同じです"
Else
MsgBox "値が違いますよ"
End If
End Sub
'----
Function chkRANGE(MOTO As Range, SAKI As Range) As Boolean
Dim n As Integer
Rem まず、セルの数があっているか調べます
If MOTO.Count <> SAKI.Count Then
chkRANGE = False
Exit Function 'セルの数が違うのでもうチェック不要
End If
Rem 次にループさせ値をチェックします
chkRANGE = True '戻り値をTrueOKで初期化します
For n = 1 To MOTO.Count
If MOTO(n).Value <> SAKI(n).Value Then
chkRANGE = False
Exit For '1つでも違えば後はチェックしなくていいので抜ける
End If
Next n
End Function
もし、過去に誰かが作ったものがあるなら、
それを流用するほうが工数(デバック工数含む)がかからなく、
効率的だ
その逆で、
なんでも自分で作りたいプログラマーもいる。
どちらがよいかはケースバイケースなのでここでは書かないが、
過去のC言語バリバリやってた自分なら、
共通関数を自分で作るのが好きで、
LK_XXXXX()って関数を楽しみながら作ってました。
↑名前が安易にLIBのLとKenjiのKでLK_XXX(ださださ(笑))
今の自分は、今回みたいな簡単な関数も、
すぐに作れなくなってしまったんだなぁと
質問に答えた後、ふと考えてしまった。
C言語ほど、自分のライブラリーは無くてもいいが、
VBAでも定石っぽいルーチンは探せるか、
自分で空いてる時間にまとめて作成したほうが良いと痛感する。
また、コード自体の書き方にもこだわりが無くなり、
動けばいいコードを書いているような、気がする。
掲示板で殴り書きでは?と指摘を受けたが、
'----
Function chkRANGE(MOTO As Range, SAKI As Range) As Boolean
Dim n As Integer
Rem まず、セルの数があっているか調べます
If MOTO.Count <> SAKI.Count Then
chkRANGE = False
Exit Function 'セルの数が違うのでもうチェック不要
●ここでは、リターン値をセットして、関数をすぐ抜けているが、
End If
Rem 次にループさせ値をチェックします
chkRANGE = True '戻り値をTrueOKで初期化します
For n = 1 To MOTO.Count
If MOTO(n).Value <> SAKI(n).Value Then
chkRANGE = False
Exit For '1つでも違えば後はチェックしなくていいので抜ける
●ここでは、リターン値セット後、Forを抜けて、End Function まで流している
End If
Next n
End Function
'----
動作は同じだが、下記のほうがわかりやすいかも?
'----
Rem 次にループさせ値をチェックします
For n = 1 To MOTO.Count
If MOTO(n).Value <> SAKI(n).Value Then
chkRANGE = False
Exit Function '1つでも違えば後はチェックしなくていいので関数終了
End If
Next n
'全て正解なら
chkRANGE = True '戻り値をTrueで関数を終る
'----
のほうがプログラムを読みやすかったのかも?
また、途中でExit Functionしないで、関数の出口を一つもアリかなぁと。
もっとわかりやすく、短く書く方法があるとは思いますが、
関数1つ、1つ、手を抜かないで作っていく気持ちが大事ですね。
今回はこれで終りますが、
みなさんが何か感じるものがあれば幸いです。
では、また。
説明べたな三流プログラマーでした。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
項目別に本音?それとも建て前?的な記事をまとめました。
|
気になったジャンル↓を選択してください。 |
Blogとリンク:[三流君の作業日記]/ [愚痴(Bookmark)]/ [広告Blog(Bookmark)]