実は簡単!?Excelのマクロを使ってみる!!

Excel VBA マクロ 時短

t f B! P L
フリー写真素材ぱくたそ (photo by すしぱく)さんよりお借りしました。

Excelで検索をしていると、『マクロ』って聞きますが、なんか難しそうってイメージで手を出すのが恐いって方いませんか?

僕自身そうだったので、少なからずいると思います

ただ、何となく使ってみるとかなり簡単です

ってことで、マクロを使ってみる方法やマクロを起動するボタンの作り方などを、簡単に整理してみようと思います

Excelマクロは難しい?

マクロと聞くと難しいと感じる方もいると思いますが、EXCELで合計を計算する時に、セルに『=SUM(範囲)』を記述している方であれば、全く問題ないと思います!!

Excelの関数より、ちょっと書くことが多いだけです😆

Excelマクロ(VBA)とは?

Wikipedia先生によると、マクロとは、

マクロ (英: macro) は「大きい」「巨大な」といったような意味の語であるが、コンピュータ関係では、アプリケーションソフトウェアなどの操作などといった、プログラミング言語と比較して粒度が大きい操作をまとめて自動化したりする機能を指して良く使われる。マクロを記述するコンピュータ言語をマクロ言語と言う(言語の無いマクロ機能もある)。また、テキスト等の変換を記述する変換言語もマクロと呼ばれる。

Wikipediaより引用

とされています。

正直、良く分からない記述ですが、私としては『各ソフトウェア(アプリ)が分かる言葉で、作業の内容を書いて(伝えて)あげて、繰り返し作業などを自動化する機能とその言葉』というイメージです。

さらに簡単なイメージとしては、便利機能!ってとこでしょうか(笑)

マクロ機能の表示方法

Excelのマクロ機能は、先ず“開発”タブを表示して使用します。

もしも、開発タブが表示されていないようでしたら、下記のように、開発タブを表示してみてください。
  1. 『ファイル』タブ → 『オプション』をクリック
  2. 開いた画面の『リボンのユーザー設定』をクリックし、『開発』のチェックボックスを選択
  3. 『OK』をクリック

これで、開発タブが表示されたと思います。

開発タブを表示しますと、“Visual Basic”や“マクロ”と表示されますので、これらをクリックしてコードを書いていきます!

Excelマクロの書き方(フォーマット)

続いて、ざっくりとマクロの書き方について記述しようと思います。

Excelは、VBA(Visual Basic for Applications)という言葉で伝えることで、作業内容をし理解します。
とは言え、言葉は英語と一緒で覚えるか調べてみれば例が色々と出てきます。が、案外全体としての構成って書かれていないことが多い気がするので、マクロで記述する全体の構成を以下に書いていこうと思います。

全体の構成としては、
  • 題名を記述する。
  • 自分で設定する言葉(文字)を記述する。(Excelにとっての専門用語(?)を教えてあげる)
  • 作業内容を記述する。
  • Excelに作業終了を知らせる。

ってな感じです
正直、二つ目の項目以外は、普通に文章を書くのと変わりありません

二つ目は、Excelの知らない言葉(文字)をマクロを作成する人が勝手に決めるので、この文字は数字だよ!とか文字列だよ!ってことを教えてあげるために必要な部分です。

Excelマクロの書き方(フォーマット)は、これだけです(^_-)-☆
思いの外、簡単そうではないですか?

Excelマクロの使い方

作業を記録しマクロとして活用する

フォーマットが決まっていて、全く同じ作業で良ければ、わざわざマクロの言語を覚えずとも“作業を記録”してマクロとして実行することが出来ます。

記録方法は、
  1. 『開発』タブの『マクロの記録』をクリック。

  2. 開いたウィンドウのマクロ名を記述して『OK』をクリック。
  3. この状態で、繰り返し実施したい作業をExcelに見せて覚えさせます。
  4. 作業が完了しましたら、『開発』タブの『記録終了』をクリック。

  5. 同じタブの『マクロ』をクリックして開くと、今の作業がマクロとして保存されています。
  6. この新しくできたマクロは『実行』ボタンを押すと、全く同じ作業が再現されます!

記録して使う方法は、以上です(^^♪フォーマットが決まっていて、実施することが全く同じ作業であれば、この方法が簡単で使い勝手が良いかと思います!

マクロを直接書いて使う

マクロを『記録』する方法は簡単にマクロを使えるのですが、全く同じ作業しか実施できないという問題があります。

ある程度の自由度を持って作業を自動化する上では、直接マクロを記述するしかありません。

とは言え、上に記述したように、全体としては定型のものなので、以下の要領で実施していけば、簡単にマクロを記述することができると思います。
  1. 自動化したい作業のフローを作成する。
  2. 直接記述する場合は、「文頭に必要な文字を定義する必要がある。」「作業内容を考えながらコードを書いていると、そのうち何をやるものだったのか分からなくなる」といった悩みどころが発生します。

    ですので、先ず最初に作業として何を実施させるのかを明確にして、その作業フローを作成すると良いと思います。

    文章で言えば、目次を作成するイメージです。例えば…
    ↓のようなリストから、各都道府県の市町村数を数えたいときは…

        1.都道府県のリストを作成する。
        2.都道府県ごとの市町村の数を数えて出力する。
    といった雰囲気です。

  3. コードの記述画面に記述する。
  4. [alt]+[F11]を押して、マクロの編集画面を表示し、[挿入]-[標準モジュール]をクリックします。

  5. 『Sub 題名() End Sub』で全体の枠組みを設定する。
  6. 作業フローで整理した作業リストをコメントとして貼り付け

  7. 作業内容を更に具体化

  8. コードを記述
  9.         Sub 市町村数の抽出()
            
            Dim i, n As Long
            
            '都道府県リストの作成
              '都道府県が載っている列をコピーして、新しいシートに張り付け
              Range("B:B").Select
              Selection.Copy
              ActiveSheet.Select
              Sheets.Add
              Range("A1").Select
              ActiveSheet.Paste
              
              '重複する情報の削除
              ActiveSheet.Range("A:A").RemoveDuplicates Columns:=1, Header:=xlYes
              
            
            '都道府県ごとの市町村の数を数えて出力
            n = Cells(Rows.Count, "A").End(xlUp).Row
            For i = 2 To n
              Cells(i, 2) = WorksheetFunction.CountIf(Worksheets("Sheet1").Range("B:B"), Cells(i, 1))
            Next i
            End Sub
          
  10. マクロ編集画面を閉じる
  11. 『開発』タブからマクロを実行
これで、実行可能です☆


記述は、色々な先人の方々のブログやHPを調べる必要があり、少々面倒かも知れませんが、コピペでいけるものも多いので、思いのほか簡単にできると思います!!

マクロを実行するボタン(マクロボタン)を作る

マクロボタンの利点

先程のように、マクロを作成しても毎度毎度、『開発』タブから実行するのは折角、手数を減らしたのに、正直面倒ですよね。

この問題を解消する方法が、自称『マクロボタン』です!

マクロボタンを作ってしまえば、ポチっとワンクリックでマクロの実行が可能になります☆

マクロボタンの作り方

マクロボタンの作り方は到って簡単です。
  1. [挿入]タブ>[図形]から好きな図形を選択
  2. 好みのボタン(図)を作成

  3. 作成したボタンを右クリックして、『マクロの登録』をクリック

  4. 開いた画面で作成したマクロを選択して、『OK』をクリック
以上で完成です!!

簡単ですね♪是非ボタンをクリックして動きを見てみてください☆

まとめ

如何でしたでしょうか。初めてマクロを使おうと思うと、見たこともない文字の羅列にさらされて嫌気がさすかもしれません。

ですが、実際に手を動かしてみると、案外簡単です!

私自身、マクロを組むということは、社会人7年目までやったことは無い機械音痴な人間ですが、少しは書けるようになりました☆

マクロで自動化してしまえば、作成には1~2時間要するかも知れませんが、結果的には数十時間、数百時間以上を削減できることもあります!!

無駄な作業をどんどん自動化して、自分や家族のための時間を確保していきましょう~♪

QooQ

Blogger