モチのロンよ
岬さんは胸をはり、当然といった感じでうなずきます。
「モチのロンよ。これは、RangeオブジェクトのSortメソッドっていうの。
引数でキーとなるセル範囲や、並び順を指定すると、Excelの並べ替えと同じ処理を実行するわ。
複数のキーを指定することもできるわよ。
…じゃあ、森川くん。
同じくA1セルからA100セルに値が入力されているとして、
その中から"test"の値が入力されているセルを探したいんだけど…。
どうしよう?」
「検索っすか…なら値を配列かなんかに格納して、繰り返し構文でループさせて、
条件分岐で判定すればいいんじゃないっすかね?」
「はい、ざ~~~んね~ん。
そんなことしてたら、また1時間も、30分もかかっちゃうでしょ?
これも、1分です」
Sub Sample()
Debug.Print Range("A1:A100").Find("test").Address
End Sub
「このコードはA1~A100のセル範囲から"test"の値を検索して、
見つかったセルのアドレスをイミディエイトウィンドウに出力します。
…ま、見つからなかったときはエラーになっちゃうから、このままじゃ使えないけどね。
ちなみにこれは、RangeオブジェクトのFindメソッドといって、Excelの検索と同じ処理を実行するの」
森川くんは、真剣な表情でコードウィンドウを見つめています。
「…なるほど、先輩の言わんとすることが、わかってきました。
Excel VBAは本来、表計算の機能を自動化するためのものだから、
Excelの機能が分かっていないと、無駄なコーディングをしてしまう…ということですね?」
岬さんは、満面の笑みを浮かべてうなずきます。
「大~正解!その通りよ。
あなたみたいにプログラミングが達者な人は、とかくテクニックで解決しようとしちゃうでしょ。
でも、それではExcel VBAを使いこなしているとは言えないわ。
ましてやVBAを"チョロい"なんて言うのは、100万年早いわよ」
「す、すみませんでした。調子に乗ってたっス…」
森川くんは、頭をポリポリとかきました。