『自分に1を足す?』Excel マクロを書いていたら勇気をもらえたという話

スポンサードリンク




Excel VBAには、通常のExcelにはない独特の書き方があります。

Excelマクロの書き方

Excelとマクロ。

似ているけど、書き方はそれぞれです。

例えば、

「もし、A1セルの値が80以上なら『A』、そうでなければ『B』をF1セルに入れる」

という場合。

通常はF1セルに

=if(A1>=80,”A”,”B”)

と算式を入力しますが、マクロの場合には、

という書き方をします。

「if〜then〜else〜end if」構文を使った書き方です。

短いのはExcelの方で、「マクロで書かなくても、普通のExcelでいいのでは?」と思うかもしれません。

ただ、データ数が多ければ、コピペもそれなりに手間がかかります。

それにいつも使っているExcelではできないようなことが、マクロを使うことでできるといったことも特徴です。

マクロならではの記述もあり、それを知っておくと色々考えますし、視野が広がるのでおすすめです。

 

Excel マクロの『S=S+1』ってどういう意味?

マクロでは、どんなことができるのでしょうか?

例をあげて考えてみましょう。

例えば、こういった売上の年間データ(A列からD列)があったとして、1日の売上が15万円以上の日だけを別の表(H列からL列)に上から順番に書き出したいというケース、

何も入ってないセルに、値を書き込むということです。

これをマクロでこう書いてみました。(書き方は色々ありますので、一例として。)

これでF5をクリックして実行してみると、売上が15万円以上の日だけをピックアップしてくれます。

補足
違うシートに書き出すこともできます。

個人的には、オートフィルタより便利なんじゃないかなと思っています。

 

ちなみに。売上の分析には、ピボットテーブルがおすすめです。

店舗別売上の集計はExcelのピボットテーブルが便利 いろんな角度からの集計が一瞬でできる

2016.09.28

で、今回一番ネタにしたかったのは、マクロならではのこの記述です。

S=S+1

S=S+1って、左と右がイコールということですから、「この算式は成り立つの??」なんて思うわけです。

 

「『S』と『S + 1』は等しくないでしょ?」

「『S = S + 1』なんてあり得ないでしょ?」

 

と。ただ、これは等式のイコールじゃなく、代入するという意味。だそうです。

(あ、そうなの、でスルーしていただいて結構です。)

 

代入のわかりやすい例は、

Range(“A1”)=10+20

と書くと「A1セルには10+20の答えが入るよ。」という意味。

結果、A1セルには30が入ります。

 

ということで、「右側の式→左側(A1セル)に値を入れる」の順で考えるという感じです。

話を戻して、前述の

S=S+1

でいうと、一番最初の変数の宣言で「S=2(Sは『2』だよ。)」と言ってます。

で、変数「i」も「2」からとなっているので、まずは

Range(“H” & S).Value = Range(“A” & i).Value 

Range(“H2“).Value = Range(“A2“).Value

となって、条件(売上15万円以上)に合えば、「H2セルにはA2セルの情報を書いてよ。」

ということなります。

そのあとに
S=S+1

の記述があるので、S(=2)+1=3として、セルに書き終わった段階で行を2行目から3行目に変更しているというわけです。

 

あとFor〜nextは、「繰り返してね」を意味しているので、売上15万円以上のデータに該当するものがあったら、1行ずつ下げて書いていく、ということになります。

 

『S=S+1』で自分に1を足していく

この

S=S+1

ですが、自分に1を足しているというようにも見ることができます。(私は)

日々足していることは『1』だとしても、繰り返すことで、『2』、『3』、『4』…と毎回『1』ずつ積み重なっていくわけです。

シンプルな「S=S+1」ですが、続けていることがある立場からすると、日々の積み重ねで大きくなる、と勇気をもらえる記述です。

 

このブログの場合で考えてみると「S=S+1」で「S=0」からスタートし、これで「S=820」ということになりますが、果たしてどこまで続くのやら。

 


【編集後記】
昨日は仕事のあと、夕方から歯医者へ行き、そのあとは子供たちと近所をランニング+歩き。子どもたちは途中のコンビニでお約束のジュースを買って充電してました。(これ目的で一緒に走ったというハナシも…)

【昨日の1日1新】
※「1日1新」→詳細はコチラ
INVOY


スポンサードリンク