アリさんのケーキさがし―― 一歩前進

Excelでわかる機械学習超入門』では、Excelの新しいテクニック、使い方も教えてくれる。マクロを使わないという方針なので、人によっては回りくどいと感じるものもあるかもしれない。また、いくら「超初心者」にマクロは無理と思っても、この一つのセルに何重にも括弧でくくられたIF文の解読をしようと思ったら、マクロの方がましなんじゃないか、と思われるところが少なからずあるが、それもまたよろしいだろう。
そもそも私がまだ十分なテクニックを持っていないので、他の人から学ぶことが山ほどある。今回、こんなことができるのかと感動したのがoffsetという機能。基準となるセルから、何行分、何列分移動させたセルを指定することができる。何行分、何列分の部分を変数にしてもいいので、状況に応じて相対位置が変わるときでもOK。セルに名前を付ける機能と組み合わせれば、いろいろできそう。

Sub Gか冒険か2()

Dim Gran, Gran2, IT2

Gran = Rnd()
Range("D10") = Gran

If Gran >= Range("b10") Then
    Range("e10") = "RE"
    Else
    Range("e10") = "IT"
    
    Range("g12") = Cells(2, 10)
    Range("G13") = Range("a13").Offset(Cells(2, 10), 5)
    
End If

End Sub

前回から1行しか増えていないが、offsetの使い方を調べていたせい。通常のセルの中に入れる時と、VBAの場合とで書き方が違っていた。どうすりゃいいのかとドタバタした末、まずはこうなった。
A13からF22までは、3X3の各マス目から移動できる方向を示し、F列ではその方向がいくつあるかを表示している。どの方向にいくか、ランダムに決める場合、選択肢の数が必要になる。
はたして、アリさんがケーキにたどり着くのはいつの日か。