「Fizz Buzz問題」って、
・ループ
・条件判断
っていう、プログラムを作る際の基本的な考え方を使って作るものなんで。
自分なりにいろんな言語で書いてみたりして、練習してたんですが。
「3の倍数」「5の倍数」・・・最近お笑い番組で出てる、
「世界のナベアツ」のネタって、確かそんなネタだったような(^^;)
と思って、世界のナベアツ fizz buzzで検索してみると、
(^^;) やはり同じことを考えている人がいるもんですね。
というわけで、彼の持ちネタの1つ「3の倍数と3がつく数字のときアホになり、8の倍数のとき
気持ちよくなる」を、VBAとExcelのワークシート関数で作ってみました。
まず、VBAバージョン。
Sub test()
Dim i As Integer
For i = 1 To 40
Debug.Print i;
If i Mod 3 = 0 Or InStr(Str(i), "3") <> 0 Then
Debug.Print "~~~";
End If
If i Mod 8 = 0 Then
Debug.Print "ぅぅういえぇえあ";
End If
Debug.Print
Next
End Sub
イミディエイトウィンドウに表示するだけのものです。
語尾につける文字列は、こちらのサイトを参考にさせていただきました。
実行してみます。

ん、ネタそのまま(^^;)
つぎはワークシート関数で。
A1~A40に1から40の値を入れておき、B1に以下の計算式を入れます。
=A1 & IF(MOD(A1,3)=0,"~~~",IF(ISERROR(FIND("3",A1)),"","~~~")) & IF(MOD(A1,8)=0,"ぅぅういえぇえあ","")
で、A1の計算式をA2~A40までコピーすると、

ん、こちらもOK(^^;)
「3のつく数字」を探す際のFINDワークシート関数の扱いがちょっと分かりにくかったです。
探して見つからなかった場合、#VALUE!というエラーになってしまうので、
ISERROR関数を使ってFIND関数の値を調べ、
エラーだったら(つまり3がつかなかったら)何も表示しない、
そうでなければアホになる。
という感じですね。
あと、VBAのMODとワークシートのMODの記述の仕方が違うんですね(^^;)
VBA・・・5 mod 3→2
ワークシート関数・・MOD(5,3)→2
これもこんがらがっちゃいました(^^;)
こちらにおいておきます→vbastudy_0008.xls