ExcelVBAで乱数を取得して、簡易おみくじを作ってみる
2015年の1本目の記事です。あけましておめでとうございます!本年も、Ateitexeをどうぞよろしくお願い致します。なにかお正月っぽいこと書けないかなーと思って、ネタ的に作ってみましたw
準備
いつものごとくこちらの記事を参考に、ボタンを押すとプログラムが起動するようにしておいてください。
コード
Sub Omikuji() Dim oracle As Variant, i As Integer, str As String '結果を配列に格納 oracle = Array("大吉", "中吉", "小吉", " 吉 ", "末吉", " 凶 ", "大凶") '0~6までの整数をランダムに取得 i = Int(7 * Rnd) '文字列を生成 str = "_人人人人_" & vbNewLine & _ "> " & oracle(i) & " <" & vbNewLine & _ " ̄Y^Y^Y ̄" 'メッセージボックスに表示 MsgBox str End Sub
まず5行目、おみくじの結果を配列に格納しておきます。1文字のものには両側に半角スペースを入れておくと、表示が乱れなくて良いかも。
8行目、Rnd
という関数は0以上1未満の単精度浮動小数点数型(Single型)の乱数を返すというものです。これを利用して、0~6の整数(ゼロも含めて7つのおみくじ結果に対応)をランダムに取得します。
11~13行目で出力する文字列を生成します。vbNewLine
は出力上での改行、_
はコード画面上での改行を意味します。(コードを読み易くするためのもので、1行で書いてしまっても動作に影響はありません。)
12行目の真ん中におみくじ結果を入れます。oracle(i)
と書いてありますね。i
が先ほどランダムに取得した整数なので、その数値によって
- oracle(0) … 大吉
- oracle(1) … 中吉
- oracle(2) … 小吉
- oracle(3) … 吉
- oracle(4) … 末吉
- oracle(5) … 凶
- oracle(6) … 大凶
最初に定義した配列の内容が入ります。
こちらを参考にさせていただいています。ありがとうございます!
動作
ボタンを押すと、はい!
押すたび、ランダムな内容が表示されます。
非常に簡単なつくりですが、まぁ、ネタとしてw
ExcelVBAに興味をお持ちの方は、こちらの記事もどうぞ!
- これからExcelのマクロを始めたいという方に!簡単な練習問題作りました。
- 私がExcelVBAでよく使う便利なコード・スニペットまとめ
- プログラム初心者さんへ贈る、エラーが起きたら試してみて欲しいこと
- ExcelVBAのクラスモジュールって何?という人向けの使い方まとめ
書籍を執筆しています。
コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。