Excelマクロ入門ー実際に基本のマクロを書いてみようー

  • URLをコピーしました!

Excelマクロ=VBAをどうやってはじめ、どうやって動かすか。
かんたんなプログラムを書いてみましょう。

Excelマクロを書くステップ

①新しいExcelファイルを開きます。
Ctrlキー+Nで、簡単に新しいExcelファイルを開くことができます。

②Alt+F11でマクロを書くツール(VBE)を開きます。

さらに、[ツール]→[オプション]で、
・[自動構文チェック]のチェックを外す
・[変数の宣言を強制する]をチェックする
という設定にしましょう。

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

④マクロは、原則として「Sub (マクロ名)」で始まり、「End Sub」で終わります。
マクロ名は自由に決めることができますが、ここでは、「Macro」という名前にします。
「sub macro」と入力し、Enterを押してください。

⑤すると、自動的に、次のような表示になります。VBE側で設定してくれるのです。

この「Sub Macro()」と「End Sub」の間に、プログラムを書いていきます。
()は今の段階では気にしないでください。勝手についてきます。

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

range(”a1”).value=5

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

こういった修正はVBE側でやってくれるのです。

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

⑨実行後にExcelを確認してみてください。(Alt+F11)でVBEとExcelの切り替えができます。
次のように、セルA1に5が入力されています。

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

Range(”a1”).Value=5

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

※大文字・小文字は気にせず、すべて小文字で書いてEnterキーを押してください。

この文だと、「セルA5に、セルA1を入れる」という意味になります。

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

⑪マクロを実行すると、次のようになります。


セルA5には、セルA1の値が入るのです。
セルA1をセルA5にコピーしたことと同じ状態とも言えます。

もちろん、「セルA1をセルA5にコピーする」と書くこともできますが、今回の事例の文の方が簡単で、その後の応用もききます。

 

 

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の現金出納帳の値を会計ソフトインポート用のデータに移す例(音声付きです)

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

 





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

  • URLをコピーしました!