【コピペOK】VBAのCommandButtonとは?初心者でも3分でわかるクリックイベントの書き方

【業務効率化】VBA
スポンサーリンク

事務業務をしていると、同じ作業の繰り返しが山ほどありますよね。

実は、そうした「手作業の負担」は、Excel内に配置した「ボタン」をワンクリックするだけで、一瞬にして解消することができます。

今回は、VBA(プログラミング)の入り口として「CommandButton(コマンドボタン)」のクリックイベントについて解説します。

【業務効率化】VBAの記事を見る 

クリックイベントとは?

「クリックイベント」という言葉は難しく聞こえるかもしれませんが、要するに「ボタンが押された際、あらかじめ指定した動作を実行する」という仕組みのことになります。

身近な例で例えるなら、「電気のスイッチ」と同じ構造になります。

  • スイッチを押す(クリックする)
  • 電気がつく(あらかじめ決められた動作)

このように考えると、非常にシンプルに捉えられるかと思います。

実際にボタンを作ってみよう

今回は実践として、入力されたデータをボタン一つで一括消去する「クリアボタン」を作成してみます。

【手順】

  1. Excelの「開発」タブから「挿入」をクリックし、ActiveXコントロール内にある「コマンドボタン」を選択します。
  2. ワークシート上の任意の場所でドラッグすることで、ボタンが配置されます。
  3. 配置したボタンをダブルクリックします。

すると、VBAのエディタ(VBE)が起動し、以下のようなコードが自動的に生成されます。

Private Sub CommandButton1_Click()
    ' ここに「やりたいこと」を書きます
End Sub

これが「クリックイベント」の仕組みになります。この「Sub」から「End Sub」の間に記述した命令が、ボタンをクリックした瞬間に実行される形になります。

コードの最初にあるPrivateという文字を見て、「これは何だろう?」と感じた方もいらっしゃるかもしれません 。
これは専門用語で「アクセス修飾子」と呼ばれるもので、簡単に言うと「このプログラムが動く範囲(有効範囲)」を決める言葉です。
Privateと書かれている場合、そのプログラムは「ボタンを配置したそのシート内だけでしか使えません」という意味になります 。
もし他のシートや別のファイルからも自由に呼び出せるようにしたい場合はPublic(パブリック)という言葉を使いますが、今回のようにシートに置いたボタンを動かすだけであれば、自動で付くPrivateのままで全く問題ありません 。
最初は「このボタン専用のプログラムという意味なんだな」と、テンプレように気楽に捉えておけば大丈夫です 。 

コピペで使える!実践コード

それでは、実際のコードを記述してみましょう。以下のプログラムは、セルB2からB10の内容を一瞬で消去し、処理の完了をメッセージで通知する便利なコードになります。

Private Sub CommandButton1_Click()
    ' --- 指定した範囲の内容をクリアする命令 ---
    ' Range("B2:B10") は「B2からB10までのセル」という意味です
    Range("B2:B10").ClearContents
   
    ' --- 終わったことをメッセージで知らせる ---
    MsgBox "データの削除が完了しました!"
End Sub

ここでつまずく!「デザインモード」の罠

ここで、VBA初心者の方が特につまずきやすいポイントを紹介します。

「ボタンを押してもマクロが動かず、ボタン自体が選択されてしまう」という場合は、Excel上部にある「デザインモード」がオンになっていないか確認してみてください。

  • デザインモードON: ボタンの場所や名前を変える「編集モード」
  • デザインモードOFF: ボタンを押してプログラムを動かす「本番モード」

このモードを切り替えるだけで、意図通りにボタンが機能するようになります。

日々の小さな業務効率化の積み重ねが、大きなゆとりを生み出すことにつながります。。ぜひ活用してみてください!

【業務効率化】VBAの記事を見る 


VBAを独学で学び、業務自動化に5年以上携わってきた私が、「本当に実務で役立った!」と感じた2冊を紹介します。 もう本選びで失敗したくない方は、よければ参考にしてみてください。

この記事を書いた人
ぐー

手取り15万円の会社員でしたが、年間100万円以上節約していました。
株式投資で年間360万円以上投資し、iDeCoも併用しています。
総資産はアッパーマス層に到達しました。
資格は日商簿記3級を持っています。

このブログでは、私が実践してきた節約術やリアルな資産運用、生産性を高めるITスキルについて発信しています。

生活を豊かにするため、高配当株投資で年間配当金60万円をめざしています。
現在の年間配当金は30万円ほどです。

ゲーム・漫画・アニメなどが好きです。
一緒に資産形成をがんばりましょう!
よろしくお願いします!

ぐーをフォローする
【業務効率化】VBAITスキル
スポンサーリンク
ぐーをフォローする

コメント

タイトルとURLをコピーしました