マイクロソフトのエクセル(EXCEL)は非常に優れたソフトで、パソコンが導入されている職場なら何らかの形で使われているのではないかと思う。

このエクセル、実に様々な機能を持っていて、使いこんでいけばいくほど奥の深さが感じられるのではないだろうか。
関数を使いこなせる人は比較的多いと思うが、マクロとなると使える人は限定的になるのではないかと思う。
それは使い方が難しいというよりも、マクロを理解するには、その前提としてソフトウェア開発の概念を理解する必要があるからというのが私が考える理由だ。

ここでは関数とマクロの違いについて説明したい。
エクセルの関数とは、あらかじめ目的が決められている計算機能の事である。
その計算を実行するための条件を引数によって関数に与えて、関数はその条件に沿って計算結果を返す。
その返された計算結果が、関数の設定されたセルに表示される。

言葉で説明すると判りにくいが、SUM関数は特定の領域のセルの合計値を計算する関数だし、AVERAGEは指定した領域の平均値を算出する関数である事は多くの利用者が理解している事だろう。
この関数の事を組込関数とも言い、エクセルの内部に固定の機能として用意されているため利用者側で機能を変更するなどは一切できない。

これに対してマクロは複数の処理を連続して実行させるなど利用者が希望する処理を定義する事が可能な機能である。
コンピュータの世界ではソフトウェアに動作を指示するための記述をスクリプトと呼んでいるが、エクセルのマクロはVBAと呼ばれる仕様で記述するスクリプトの一種である。

例えば、
・Aシート上にあるボタンをクリックすると、シートB〜シートZまでの25ページ分を連続して印刷する。
・得意先から送られてくるCSVファイルを読み込んで、それを自社の仕入先伝票形式に変換する。
・特定のセルに入力された文字列と同じ名前のシートを追加する。
といったような処理である。
マクロの機能を活用すれば、こういった業務の効率を飛躍的に向上させる機能を追加する事が可能となる。