0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Excelでアドベントお手紙カレンダーを作ろう-その4-

Last updated at Posted at 2025-12-23

Excelでアドベントお手紙カレンダーを作ろう-その4-

はじめに

今回は前回に引き続き、
クリスマスっぽいものを記事を通して作ってみよう!
という企画の続きです。

前回は、
アドベントお手紙カレンダーの「見た目」を先に作成しました。
クリスマスツリーのデザインや日付入りオーナメントの配置など、
図形を使った構造づくりがメインだったため、
この時点ではクリックしても何も起きない「静的な見た目」でした。

本記事では、いよいよ
VBAを使って、クリックしたときに反応する仕組み
を作っていきます!

今回のゴール

今回のゴールは以下の2つです。
・図形(オーナメント)をクリックしたことを検知できる
・クリックに反応してメッセージを表示させることができる

まだ完成ではありませんが、
Excelが“触ると反応する”状態を目指します。

マクロの記載

それでは、記載していきましょう。
 
といっても...

正直全く触ったことがないので何を書けばいいのかさっぱりわかりません...

そこで今回も、ChatGPT先生に助けてもらいます。

作成方針としては、
「こういう動きをさせたい」とChatGPTに伝えて、
最初のコード案と手順を出してもらい、
それを実際に打ち込んで動かしながら調整する
という方針で進めていきます。

今回はまず、「クリックしたら反応する」ことをゴールにします。

VBAを書く準備

最初に、その2で見た標準モジュールを追加します。

以下手順で追加します。

  1. Excelの [開発] タブをクリックします
  2. [Visual Basic] をクリックし、VBE(Visual Basic Editor)を開きます
  3. VBEのメニューから[挿入]タブを選択します
  4. [標準モジュール]をクリックします
  5. 以下のような画面が表示されたことを確認します
    スクリーンショット 2025-12-23 221123.png

※ [開発]タブがない方は、
「Excelでアドベントお手紙カレンダーを作ろう-その2-」で表示方法を記載しているので、そちらを参考にしてください。

これで準備完了です。

最初のコード

ChatGPTに「図形をクリックしたら、何が押されたか分かるコードを書いて」とお願いしたところ、
以下のコードを教えてもらいました。

Sub Ornament_Click()
    Dim shapeName As String
    shapeName = Application.Caller

    MsgBox shapeName & " がクリックされました"
End Sub

内容についても、ざっくり説明してもらいました。

Application.Caller

→ クリックされた図形の名前を取得する

MsgBox

→ 確認用にメッセージを表示する
 
という、シンプルな処理とのことです。

まずはこのコードを、先ほど作成した標準モジュールにそのまま貼り付けます。

図形にマクロを登録する

次に、上記のマクロを同じようにオーナメントに登録します。

以下手順で登録します。

  1. オーナメントとしてグループ化しているグループを選択します
  2. 右クリックしメニューを表示させます
  3. [マクロの登録]をクリックします
  4. 一覧から Ornament_Click を選択します
  5. [OK]を押します

この作業をすべてのオーナメントに対して行います。

クリックしてみる

ここまでできたら、Excelに戻って確認してみます。

オーナメントをクリックすると……
スクリーンショット 2025-12-23 225828.png

と、メッセージが表示されました。

これで、
・図形をクリックできる
・どのオーナメントが押されたか分かる
という状態になりました。

まだお手紙は表示されませんが、「Excelが反応した!」という一番大事なところはクリアです。

今回はここまでです!

おわりに

今回は、
VBAを使って、クリックしたときに反応する仕組みをつくる
という回でした。

セルを使わなくても、Excelはちゃんと「反応する仕組み」を作れるということが分かってきました。

次回は、
・日付ごとにお手紙の内容を変える
・実際に「お手紙」を表示する
といった部分に進んでいく予定です。

いよいよアドベントお手紙カレンダーらしくなってきました!
のんびりですが、少しづつ作成していきましょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?