Excelマクロ入門ー実際にかんたんなマクロを書いてみようー

昨日の記事に続き、Excelマクロ入門の記事です。
スクリーンショット 2012 02 24 7 17 00

Excelマクロを書くステップ

昨日の記事の設定が完了していない方は、まず設定を行ってください。

Excelでマクロを書く下準備ーExcelを持っていれば無料で使えますー 

①設定が完了している方は、新しいExcelファイルを開きます。
Ctrlキー+Nで、簡単に新しいExcelファイルを開くことができます。
スクリーンショット 2012 02 24 6 32 33

②Alt+F11でマクロを書くツール(VBE)を開きます。
スクリーンショット 2012 02 24 6 32 49

③VBEをクリックして、Alt、I、Mを押します。(又は[挿入]→[標準モジュール]を選択します)
マクロを書く場所が表示されます。
スクリーンショット 2012 02 24 6 33 56

④マクロは、原則として「Sub (マクロ名)」で始まり、「End Sub」で終わります。
マクロ名は自由に決めることができますが、ここでは、「Macro」という名前にします。
「Sub Macro」と入力し、Enterを押してください。
スクリーンショット 2012 02 24 6 34 28

⑤すると、自動的に、次のような表示になります。VBE側で設定してくれるのです。
この「Sub Macro()」と「End Sub」の間に、プログラムを書いていきます。
()は今の段階では気にしないでください。勝手についてきます。
スクリーンショット 2012 02 24 6 37 17

⑥適当な位置(「Sub Macro()」と「End Sub 」の間)で次のように入力してEnterを押してみてください。

range(”a1”).value=5
スクリーンショット 2012 02 24 6 44 47


■スポンサードリンク


⑦Enterを押すと、次のように自動的に一部が大文字に変わります。

こういった修正はVBE側でやってくれるのです。
スクリーンショット 2012 02 24 6 45 47

⑧このマクロを実行しましょう。
「Sub Macro()」と「End Sub」の間にカーソルがある状態で、F5を押します。

⑨実行後にExcelを確認してみてください。(Alt+F11)でVBEとExcelの切り替えができます。
次のように、セルA1に5が入力されています。
スクリーンショット 2012 02 24 6 48 01

⑩マクロを次のように書き換えてみてください。

Range(”a1”).Value=5

Range(“a5”).Value=Range(“a1”).Value

※大文字・小文字は気にせず、すべて小文字で書いてEnterキーを押してください。
スクリーンショット 2012 02 24 6 52 27

この文だと、「セルA5の値はセルA1の値である」という意味になります。

どうなるか予測して、F5キーを押してみてください。

⑪マクロを実行すると、次のようになります。
セルA5には、セルA1の値が入るのです。
セルA1をセルA5にコピーしたことと同じ状態とも言えます。

もちろん、「セルA1をセルA5にコピーする」と書くこともできますが、今回の事例の文の方が簡単で、その後の応用もききます。
スクリーンショット 2012 02 24 6 52 38

Excelマクロの注意点

マクロは、正確に書かなければ動きません。
その代わり、正確に書けば、確実にその命令をこなしてくれます。
気がむかないからやらない、うっかり間違えたということはありません(^_^)

正確に書くには、次のような点に注意しなければいけません。

1 文字は””で囲む

Range(”a1”).Value=5のa1というのは文字です。そのため””で囲まなければいけません。
マクロに、これは文字、これは数字ということをしっかり示さなければいけないのです。
曖昧な指示をする上司はいないでしょうか???
そういう曖昧な指示ではマクロはてこでも動きません(笑)

間違いの例として、

Range(a1”).Value=5
Range(a1).Value=5
Range(”a1).Value=5

があります。

もし、セルA1に文字を入れたいなら、

Range(“a1”).Value=”文字”
と書きます。
Range(“a1”).Value=文字
と書くと、エラーがでます。

2 ルールを守る

Range(”a1”).Value=5は、Rangeのルールを使って書いています。
・Rangeのあとに()をつけて、その中に文字列を入れる
・Range(文字列)の後に「.」(ピリオド)をつけて「Value(値)」をつける
という2つのルールを守らなければいけません。
これを守らないと、エラーがでます。(「.value」を省略しても動きますが、今後のため省略せずに書くことを勧めています)

間違いの例として、

Range(”a1”)Value=5
Range(a1).Value=5
Range”a1″).Value=5
Range(”a1″.Value=5

があります。

いろいろめんどくさいと思われるかもしれませんが、きちんとしたマクロを書けば、10000行のデータでも実行してくれますし、ある命令を毎月正確に繰り返してくれます。
人間がやった場合の疲れやめんどくささはありません。
処理時間を短縮できるのはいうまでもないでしょう。

マクロを知っていると、人手もいらなくなりますし、コスト軽減にもつながります。

Excelマクロを使った事例

先ほど書いた
Range(“a5”).Value=Range(“a1”).Value
がすべての基本です。

あるセルの値をあるセルに移すというのができれば、それを応用していろんなことができます。
もちろん、異なるシートや異なるファイル(ブック)に移すこともできます。

複数のシートのデータを1つのシートに移す例(音声付きです)

賃金台帳の値を給与明細に移す例

Excelの現金出納帳の値を会計ソフトインポート用のデータに移す例(音声付きです)

請求データ一覧の値を請求書に移す例

次回のセミナーで取り上げる事例です。

3/18経理&会計のためのExcelマクロ入門セミナー
あくまで事例として取り上げて、マクロの基礎をお伝えするものですので、「請求書はソフトで作るからいいや」という方も参加いただけます。(お問い合わせがあった件です)


【マクロに関する参考記事】





■スポンサードリンク

【編集後記】
昨日のお客様との打ち合わせでは、「お会いしたときに聞きたかったことがあるんですよ〜」という一言ではじまりました。
内容はFacebook、iPad、Wi-Fiルーター、ノートPCなど(^_^)
ご要望にお応えするにも、日頃の情報収集・実践は欠かせません。
もちろん、確定申告の話もしました(^_^;)

■スポンサードリンク



■著書
新版 ひとり社長の経理の基本
毎日定時で帰っても給料が上がる時間のつかい方をお金のプロに聞いてみた!
『ひとり税理士の仕事術』
『フリーランスのための一生仕事に困らない本』
『社長!「経理」がわからないと、あなたの会社潰れますよ』
『そのまま使える経理&会計のためのExcel入門』