こんにちは。
はとぶーです。
突然始まった連載シリーズ
「エクセルでおみくじを作ってみる」です。
このシリーズの記事はこちらから
エクセルで運勢保存・10連機能付きおみくじを作ってみる1 ~仕様の決定~ - 20代による20代でリタイア生活を目指すブログ
さて、第2回目の今回は、ボタンの配置を行い、何かしらのアクションを行えるようにしたいと思います。
前回作ったフローチャートもどき
①「おみくじを引く」ボタンを押す。
②今日の日付を取得しセルに書き込む。
ただし、何か文字があれば下のセルに書く。
③同時に1~100の範囲で乱数を生成し、どの運勢に対応するかを判断させ、②と同様の方法でセルに書きこませる。
前回こんなものを作りました。
上から順に課題をクリアしていきましょう。
ということで今回はボタン配置と日付です。
エクセルへのボタンの配置方法
1.エクセルに開発タブを表示させる。
1.1 エクセルを開き、ファイルタブを選択。
1.2 オプションを選択
1.3 リボンユーザー設定を選択し、右側の欄から「開発」のチェックを付ける
これで、開発タブができているはずです。
2.ボタンを配置する
2.1 開発タブを開き、挿入からボタン(フォームコントロール)を選択
ボタン1は気にしないでください。
2.2 ボタンを設置したい場所でクリック
2.3 マクロの登録ダイアログでマクロ名を任意のものに変え、OKを押す。
ちなみに、マクロ名はボタンに表示される字とは異なります。
さて、これで無事にボタンの設置ができました。
おそらくボタン1となっているはずです。
しかし、ボタンを押しても
こういったダイアログが出てきます。
これは、ボタンに何の機能も持たせていないからです。
なので、ボタンに機能を持たせたいと思います。
最終的にはおみくじを引く機能を持たせますが、今回は日付だけを表示するようにしましょう。
ボタンに日付をセルに書きこませる機能を付ける
VBAを書き、ボタンで実行できるようにしよう!
ボタン1を右クリックして、マクロの登録を選択
新規作成をクリック
Sub おみくじ()~End Subの間にセルに今日の日付を入れるプログラムを書き、保存する
具体的には、下記の赤字を書き加えました。
Sub おみくじ()
Cells(8, 2) = (Date)
End Sub
B8セルに今日の日付を入れる!というプログラムです。
プログラム上でセルを選択するときは英字と数字が逆になるので注意が必要です。
そして赤丸のところで保存します。
そのとき、ファイルの種類でExcelマクロ有効ブックを選択してください。
保存が終わったら、一度エクセルを消しもう一度立ち上げ、ボタン1を押してみてください。
このようにB8セルに本日の日付が表示されるはずです。
もし####が出てきた場合は、B列の幅を広げてみてください。
上の図でもB列の幅を大きくしています。
これでボタンの配置と日付の表示は出来そうです。
次回に向けて
あと必要なのが、B8セルに文字があった場合、B9セルに日付を書くこと。
決まった確率で運勢を日付の隣のセルに書くこと。
そして10連の実装です。
次回は、B8セルに文字があった場合、B9セルに日付を書くこと。
を解決していきたいと思います。
それでは。