ExcelVBAで乱数を取得して、簡易おみくじを作ってみる

ExcelVBAで乱数を取得して、簡易おみくじを作ってみる

2015年の1本目の記事です。あけましておめでとうございます!本年も、Ateitexeをどうぞよろしくお願い致します。なにかお正月っぽいこと書けないかなーと思って、ネタ的に作ってみましたw


準備

150106-1

いつものごとくこちらの記事を参考に、ボタンを押すとプログラムが起動するようにしておいてください。

コード

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) … 大凶

最初に定義した配列の内容が入ります。

こちらを参考にさせていただいています。ありがとうございます!

動作

ボタンを押すと、はい!

150106-2

押すたび、ランダムな内容が表示されます。

非常に簡単なつくりですが、まぁ、ネタとしてw

公開日:2015/01/06

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)

YouTubeでQ&Aコンテンツを企画しています

運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。