<関数を自作できなくなった自分?> こんにちは、三流プログラマーの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)]