[ExcelVBA]競馬ツールで使ってるコードの断片集[DoWhile文/MsgBox/Mod]

  • LINEで送る

ぶっちゃけプログラミングって楽しくてもあんまり好きにはなれず、長いことやってきてるから得意ではある、登山とか筋トレとかに似ているのかな。

そういうことでもないのか、何かをカテゴライズすることもからっきし苦手な管理人ですが、それで特に困ることもないのでそのままにしてたりします。

のっけから何の話をしてるのか自分でもよくわからなくなってきてますが、ストイックなプログラマーっていうのはかっこいいなぁと思いますね。

前回もアップしてみて特に反響もなかった僕のサンプルプログラム集、このブログはこれだけでいいような気もしたりしなかったりしつつ。

DoWhile文

「!!!」って書いてあるセルまでnowRowっていう変数を増やしていって、そのセルから処理を開始できるっていう単純なプログラムです。

nowRow = ActiveCell.Row
Do While Cells(nowRow, 2).Value <> "!!!"
    
    nowRow = nowRow + 1
Loop

めちゃくちゃ単純だけど使用頻度かなり高め、このコードがある10行下ぐらいでもう一回同じことやってたりして、Find関数か何かで代用できたりするのかな。

MsgBox

If文は置いといて、メッセージボックスで目的が達せられたりそうでもなかったりすることを、自分にお伝えするためのプログラムです。

If nowRow = 0 Then
    
    MsgBox "できませんでした。"
    Exit Sub
End If

昔からあるシンプルな機能だけど、他に代わりがないって意味では優秀な機能、でも大枠で1種類しかないんで他に色々バリエーションがあったら楽しいんじゃないかって思ったりもします。

Mod関数

割り算の余りを求められる便利な関数、Mod以外のところは色々涙ぐましい工夫のあとが見える感じだけど、まぁ色んなことに使ってます。

Cells(r, 19).Value = 3 + (r Mod 9) / 100

パズルみたいに10行の中から1行を指定するときにModを使ってたりするとかっこいい、賢そうに見えるかもしれないですね。笑

実際に管理人が競馬予想してるブログはこちら

まとめ

わかる人にしかわからないのかもしれないプログラム集、まったく役に立たない自信もありつつですがなんとなく自分が癒されるので書いてみてます。

プログラムはアートだっていう人もいるけど、それ以上シンプルにできないくらいシンプルに書くことって難しいけど大事なことと思います。

だから勉強して、ここはこの関数よりこの関数で書いた方が簡単になるみたいなことの繰り返し、いくつもプログラム言語の特徴を知ってたりするとさらに倍みたいな。

まとめになってないけど、DoWhile文もMsgboxもModも初歩的ではあるけど大事な機能なので、こんなん書いてるよっていうメモ書きでした。

前回のExcelVBAメモはこちら

  • LINEで送る

コメントを残す

*

%d人のブロガーが「いいね」をつけました。