(※この記事は、2016年に他のブログで書いた記事の転載です)
こんにちは、エクセル使いこなし隊 隊長の吉井良平です。
昨日の記事「先生や幹事さんにおススメ! 2秒で席順を決めるエクセルマクロ」が好評だったので、今日もエクセルマクロに関する記事、マクロの作り方について書いてみます。
席順マクロも、「必要な場合はカスタマイズしてください」と書いたものの、やっぱりカスタマイズの方法、マクロの作り方も紹介しないと不親切だな、と思いまして。
マクロとは、自動的に処理することです。
そのマクロを記述しているのが、VBA(ビジュアル・ベーシック・アプリケーション)というプログラミング言語です。
言語なので文法があって、多くの「VBA入門」という本は、文法の解説から始まっています。
それはそれで王道の方法なのですが、でも日本語だって子供は文法を知らなくても日本語をしゃべっていますよね。英語だって、一番最初は文法じゃなくて、 ”Hello! This is a pen” から習いますよね。
なので「習うより慣れろ!」式で、初体験だけに「初体験エクセルマクロ」を作ってみましょう。(前置きが長くなってスミマセン!)
まずは準備
エクセルの初期設定だと、マクロ関係のタブが隠れているので、これを表に出してあげましょう。

手順
① ファイルタブを選択します
② オプションを選択します

③ リボンのユーザー設定を選択します

④ 開発にチェックをして「OK」を押してください

これで準備完了です!
さっそく使ってみよう!
では、もうさっそく VBA を実際に書いてみましょう!
「開発」タブを押して、「Visual Basic」をクリックしてください。

出てきた画面で、挿入 → 標準モジュールを選択

すると、コードが入力できるようになります。
まず最初に、”MsgBox”という関数を使ってみます。なかなか文章で表現するのは難しいので、動画で説明しますね。
なお、MsgBox と大文字と小文字が混ざっていますが、これはソフトが勝手に変換してくれるので、入力の時には気にしないで大丈夫です。
すると、こんな画面が出てきましたね!

もうちょっと感じを出すために、赤字の部分のコードも追加してみてください。(これは例なので、お好きな言葉で)
Sub はじめての()
MsgBox “あたたたたたたたたたたたたたたたたたたたたたたたたたたたた!北斗百裂拳!!!!!” MsgBox ”お前はもう、VBAを使っている!” MsgBox ”ひでぶ!” |
なんのこっちゃ?ですが、これで初めてのVBAは完成です!
初体験だけに・・・
MsgBoxは、ただ単にメッセージを表示させるだけなので、もうちょっと遊んでみましょう。初めての・・・ということで、初体験に関してです。(ポッ)
やりたくない方は大丈夫です。セクハラじゃないので・・・
新しく使うコード
MsgBoxに追加して、InputBoxというのを使ってみます。InputBox というのは、何かを入力させるための表示です。
あと、変数というのを使います。変数は、数学で出てきた X とか Y を思い出してみてくださいね。何かが代入されるもの、その時々によって変わる数のことを、変数といいます。
もうちょっと手を加えて、If 文というのを使ってみます。Ifは、英語の「もし」ですよね。もし○○であれば、という条件を加えます。
If(もし○○であれば)
Then (こうしなさい)
Else (違っていれば) *elseを指定しない場合もあります
End If (終り)
のセットです。
これも実際にやってみましょう!
え~と・・・調べてみたら、日本人の初体験の平均は20.3歳でした。いや、それは今はどうでも良いんですけど! え~僕の初体験は・・・関係ないですね!
興味のある方は、こちらをどうぞ。 (相模ゴム工業株式会社さん特設サイト)
すると、こんな画面が出てきましたね!

えっと・・・その結果は書きません。(ポッ)
ちょっと、エクセルのくせに失礼な! と、お怒りになった方もいるかもしれません。
そんな場合は、下記のコード(赤字部分)を挿入してみてください。
Sub チェリー()
N = MsgBox(“このマクロを続けますか?”, vbYesNo, “この質問はあなたが嫌な質問かもしれません”) If N = 7 Then If N <= 20 Then MsgBox “早いですね!” Else MsgBox “大丈夫です!” End If End Sub |
MsgBoxに、「はい」と「いいえ」ボタンを付けて、いやな場合はマクロを止める(Exitする)という条件をつけてみました。
作ったマクロは、「開発」タブの「マクロ」ボタンを押しても実行できます。

好きな画像や図形などを右クリックして、マクロを貼り付けすることもできます。
今日作ったエクセルマクロも、一応貼り付けしておくので、入力するのが面倒な方は使ってみてください。

本日は以上です。