エクセルマクロとVBAの超入門【マクロの記録ボタンとVBE】

エクセルマクロ超入門編です。「マクロの記録」ボタンを押して次にそのボタンを押すまでにやったシート上の作業が全て記録され、後で何度でも自動で再生出来るのです。そのボタンの使い方、簡単なコードの修正の仕方からマクロ付きのファイルの保存の仕方を実演で説明しています。

エクセルマクロとVBAの超基本【マクロの記録ボタンとVBE】

(動画時間:7:00)

 

<<関連記事>>

 

今日はエクセルマクロ、VBAの基本の基本をやります。

 

こんにちは、リーンシグマブラックベルトのマイク根上です。

 

メンタリングプログラムのビュアーさんからエクセルマクロの使い方についての動画リクエストを頂きました。今日はその初歩の初歩をやりたいと思います。まず簡単な使用例をお見せします。

 

週間在庫シート

 

ここに週間在庫計算シートがあります。上から今週月曜日の日付、期首在庫、今週の売上、今週の在庫補充金額を入力するセルがあります。

 

最後の二つのセルに期末在庫を求める「期首在庫-売上金額+補充在庫金額」数式と週間在庫回転率「売上金額÷((期首在庫+期末在庫)÷2)」を求める計算式が入っています。

 

今週分のデータ入力が終り、来週の入力の準備をします。過去5週間分の結果をコピーし一列ずらしてペーストします。来週の月曜日の日付を入力し(セルI5)、今週期末在庫を来週期首在庫としてコピペします。売上と補充金額のセルを消すのです。

 

これを今まで手作業でやってましたが、これをマクロで自動化出来るのです。今回そのボタンを作ってそれを押すだけでエクセルが一瞬でやってくれます。自動化すると早くて楽なだけでなく、正確性も上がり、社内の標準化が自然に進みます。今日はこのマクロを一緒に作ってみましょう。

 

魔法のボタン「マクロの記録」ボタンの使い方

 

いきなり難しいと心配しないで下さい。エクセルには「マクロの記録」という魔法のボタンがあるのです。簡単に言うと、そのボタンを押して次にそのボタンを押すまでにやったシート上の作業が全て記録され、後で何度でも再生出来るのです。実際にやってみましょう。

 

もし今回初めてマクロ記録をやる方はそのボタンをまず準備します。画面上部に小さい逆三角形がありそれをクリックし、「その他のコマンド」を選択します(下図参照)。

 

開発タブの出し方1

 

左枠内の「リボンのユーザー設定」を選ぶと(下図参照)、ここの「開発」タブにチェックが入ってません。そこにチェックを入れてOKをクリックするとその「開発」タブが現れて、「マクロの記録」ボタンが使えるようになります。

 

開発タブの出し方2

 

さっそくマクロ記録を始めましょう。この画面でマクロの名前を変えられます。既定では「Macro1」です。今回そのままOK をクリックします。

 

マクロの記録開始

 

次に先ほどの手作業をやります。 作業が終わったら、さっき「マクロの記録」ボタンと同じ場所にある「記録終了」ボタンをクリックして、マクロ記録を終わらせます。アンドゥを繰り返し元の状態に戻してマクロの再生をしましょう。

 

「マクロの記録」ボタンの隣にある「マクロ」をクリックすると今まで作ったマクロの一覧が出てきます。さっき作ったのは「Macro1」です。それを選んで「実行」をクリックすると一瞬で出来ました。ちなみにマクロの再生後はその再生をアンドゥが出来ないですので注意して下さい。

 

次にボタンを作りましょう。「挿入」タブと「図形」をクリックし、どんな図形でもボタンに出来ます。ここでは長方形を使い「来週の準備」と名前を付けます。その上で右クリックして「マクロの登録」を選び、次のスクリーンで「Macro1」を選んで「OK」をクリックします。これからはこのボタンを押すだけでマクロが実行されます。

 

「Visual Basic Editor(VBE)」でマクロの修正を行う

 

しかし困った事が月曜日の日付が変りません。次に作ったマクロの修正をしましょう。先ほどの「マクロ」ボタンの隣にある「Visual Basic」をクリックして「Visual Basic Editor」が起動します。マクロの編集やバグ取りの作業がここで出来ます。

 

今日は細かい説明はしませんが、ここの「標準モジュール」内の「Module1」にさっきの手作業の動きが記録されています(下記参照)。

 

Visual Basic Editorの紹介

 

マクロと言う言葉の他にVBAと言う言葉があります。この二つは混同し易いですが厳密には違うものです。VBAはVisual Basic for Applicationの略でマイクロソフトが作ったこのプログラム言語の名前です。それに対してマクロとはコンピュータに与える命令の塊の事です。このマクロ1が一つの塊ですね。VBAでは一行に一つの命令を書いていきます。

 

VBE内でマクロの修正

 

上図ハイライトしている二行が月曜日の日付を書いた時の記録です。「Range(“I5”)」はセルI5を意味し、「.Select」は「そのセルを選びなさい」を意味します。

 

次の行で「ActiveCell」は今選択されてるセルのことです。次の「=」ですが、プログラム言語の世界では二つの意味があります。二つの値が等しいという意味と、右の値を左の入れ物に代入するという意味です。

 

ここでは「4/2/2018」をI5のセルに代入しています。これを次の週の月曜日の日付を入れたいのです。どうやりましょうか?色々やり方はありますが、「Range(“I5”)」をコピーしてこの日付の代わりに「Range(“I5”).Value + 7」とします。

 

マクロの修正後

 

これはI5のセルに入ってた日付に7日足した日付を同じセルに入れます。つまり一週間後です。これでエクセルシートに戻り、このボタンを押して毎回来週の日付が出るように出来ました。

 

マクロの保存方法:「Excel マクロ有効ブック」

 

最後にこのマクロの保存方法です。エクセルのファイルと一緒に保存されます。普通のエクセルファイルの名前の最後、拡張子と言いますが、それは「.xlsx」になります。マクロ付きのエクセルファイルを保存する時は「Excel マクロ有効ブック」を選んで下さい。そして拡張子が「.xlsm」になります。

 

今回の対象作業は手作業でも大して時間がかかりませんが、もっと多くのデータ量で複雑な作業でも同じ様にワンクリックで一瞬に終わらせる事が出来ます。改善効果は絶大ですので、ぜひマクロを作って使ってみて下さい。

 

View My Stats