Excelの機能とマクロの考え方の違いーマクロはシンプルに考えるー

Excelの機能とマクロは、考え方が異なる部分があります。
コピーを例として比較してみました。
コピーマクロ

人間がやるコピーの操作

シート「sheet1」のセルB3にあるデータ(ここでは1,000)を、
スクリーンショット 2013 07 17 8 06 40

シート「sheet2」のセルC4にコピーする事例を考えてみましょう。
スクリーンショット 2013 07 17 8 07 03

その手順は、
・シート「sheet1」を選択する
・セルB3を選択する
・選択したセルB3をコピー
・シート「sheet2」を選択する
・セルC4を選択する
・セルC4に貼り付ける
となります。

 

 

そのままマクロを書くと

これをそのままマクロで書くとこうなります。
Sub copy()

Worksheets(“sheet1”).Select
Range(“b3”).Select
Selection.copy

Worksheets(“sheet2”).Select
Range(“c4”).Select
ActiveSheet.Paste

End Sub

それぞれ、こう対応しています。
・シート「sheet1」を選択する
Worksheets(“sheet1”).Select

・セルB3を選択する
Range(“b3”).Select

・選択したセルB3をコピー
Selection.copy

・シート「sheet2」を選択する
Worksheets(“sheet2”).Select

・セルC4を選択する
Range(“c4”).Select

・セルC4に貼り付ける
ActiveSheet.Paste

 

 

マクロではもっと簡単に処理できる

しかし、マクロではもっと簡単に指示ができます。
この事例だと、

Worksheets(“sheet2”).Range(“c4”).Value = Worksheets(“sheet1”).Range(“b3”).Value

の1行で大丈夫です。

「sheet2のセルC4の値は、sheet1のセルB3の値である」という表現をします。
直接、セルに値を入力する感じです。

マクロは、よりシンプルに考えることができます。

この「シンプルに考える」というクセは、その後の仕事、人生で役に立っていますね(^_^)

 

 

もちろん、コピーを使って、

Worksheets(“sheet1”).Range(“b3”).copy Worksheets(“sheet2”).Range(“c4”)

と書くこともできます。
厳密にいうと、前者は、値のみを入力するので、値のみコピーと同じ結果となり、後者は、書式も数式もすべてコピーします。

いずれにしろ、人がやるよりも、人と同じようにマクロを書くよりも、楽に書けますし、メンテナンスもしやすいです。

むかし、マクロを使い始めた頃は、いちいち人と同じ操作を書いていました(^_^;)
自分がやるときとは、また違う考え方をしなければいけないのに気付いたときは、感動しましたね。

マクロのすべての基本は、この構文です。
Worksheets(“sheet2”).Range(“c4”).Value = Worksheets(“sheet1”).Range(“b3”).Value
これを知って、繰り返しの処理を身に付ければ、多くのことができるようになります。
うちの請求書作成マクロ、給与計算マクロも基本はこの構文です。

7/20のマクロセミナー、本日23:00で締め切ります。

基本構文は入門で、繰り返し処理は初級で扱います。

 

7/20(土)Excelマクロ入門セミナー

7/20(土)Excelマクロ初級セミナー

■マクロって何?という方は次の記事も参考にしてください
Excelマクロ入門ー実際にかんたんなマクロを書いてみましょうー | EX-IT

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






【編集後記】
昨日、メインで使っているMacBookProが起動しなくなりました。
起動してもすぐ再起動してしまいます。
いろいろ試してみて、今は普通に使えていますが、油断できません。。。
ダメになったら、MacBookAirの13インチを買おうかと思っています。