トップ > 資格を活かすには > やってみよう!Excel VBAで業務改善! > 次なるイノベーション編: 第28話「安全なプログラムとは」4/4 :2つ以上ですか?

やってみよう!Excel VBAで業務改善! 次なるイノベーション編|第28話 「安全なプログラムとは」

2つ以上ですか?

「もう1つ思いついたんだけど…、
キーワードを区切るスペースが、2つ以上連続して入力されてたらどうなるかしら?」

「2つ以上ですか?」

「試しに、"小口"、"スペース"、"スペース"、"見積"と、打ち込んでみなさいよ」

森川くんが言われたとおりに入力すると、岬さんがステップ実行を始めました。

「ほら、やっぱり」

岬さんがローカルウィンドウを指さします。

「"空の文字列"で要素が作られちゃってるわ。
これ、気をつけないと、検索結果に影響を与えるわよ」

「本当だ……。
これ、どうしましょう?
Replace関数で連続したスペースが無くなるまで、スペースを削除する処理を追加しましょうか?」

岬さんがしかめっ面をすると、ちょっとイラついた感じでキーボードを叩きました。


            For i = LBound(KeyWrd) To UBound(KeyWrd)
                If KeyWrd(i) <> "" Then
                    Select Case Range("C3").Value
                    Case "1"
                        'AND検索の処理
                    Case "2"
                        'OR検索の処理
                    End Select
                End If
            Next i

「はい。これだけのことでしょ?
前にも言ったけど、力技で切り抜けようとするのは、本当キミの悪い癖よ」

森川くんが、唖然とした顔で画面を見つめます。

「すべてのケースに対応できるロジックを作るのは難しいけど、
前もって不正な値を取り除くのは簡単にできるでしょ。
私達の業務に必要なマクロは、エレガントでパーフェクトなプログラムではなく、
想定外の処理が発生しないよう前もって例外を排除した、読みやすく安全なプログラムなのよ」

岬さんはポンと、森川くんの肩に手を置きました。

第29話「AND検索を実装しよう」に続きます

文・イラスト / 武藤 玄
ご意見やご感想の投稿はこちら

星くんと一緒にSTEP UPしませんか?
一覧にもどる