pickup

目次

変数ってなんだ?2

こんにちは。伊川(@naonaoke)です。

上の記事で、変数とは何かということを簡単に説明しました。

今回は実際のコードを使って説明します。

問題提起

 

(株)IKAWAの阿久 世子男(アク セスオ)は新人研修で下記のような質問を受けました。
変数の説明を受けたが、イマイチ実感がないと質問がありました。
どのようなコードで説明をすれば理解されるだろうか?

解決策

回答
sesuo2.jpg
具体的なコードで説明して、理解してもらう。

 

変数で一番迷うことは、変数に次々代入していくこと

変数を利用していると、A=A+1のよう数式をよく見かけます。

これは、数学で考えると、わからなくなります。

AとA+1がなぜ等しいのかわからなくなるからです。

しかし、A=A+1はプログラムでは、当たり前のことです。

このような理屈を中学校でも、ぜひ教えてほしいものです。


Aという変数に次々、伊川直助を代入していくので、A+1というような表現を使います。


カウンターで、カチ、カチ、カチと1個、1個カウントするイメージです。

変数に1個、1個足すのは面倒

1個、1個加算するのは、面倒です。

だから、Excelには、COUNTIF関数、SUIMIF関数があるのです。

便利になったとしても、コンピュータの原則をわすれてはいけません。

昔ながらのやり方でCOUNTIFをVBAで実行する データベースを確認

セルD2には、COUNTIF関数を仕込んでいます。

セルE2には、SUMIF関数が仕込んでいます。

セルA2~セルA25には、伊川直助は、4回登場して、伊川直助の合計は44の合計です。

変数を使ってVBAで同じ結果を出したいと思います。

変数 COUNTIFをA+1で実行する


 

Sub カウント()
   Dim i As Long, A As Long
    For i = 2 To 25
    
 If Cells(i, 1).Value = Range("C2") Then
 
  A = A + 1
  
  End If
    
    Next i
    
  Range("E2") = A
End Sub


COUNTIF関数と同じ結果になりました。

変数 SUMIFをA+1で実行する


コードを書く

Sub 合計()
    Dim i As Long, A As Long
    For i = 2 To 25
        If Cells(i, 1).Value = Range("C3") Then
            A = A + Cells(i, 2).Value
        End If
    Next i
     Range("E3") = A
End Sub


SUMIF関数と同じ結果になりました。

ここがポイント

ここがポイント
Function8.png
Worksheetfunctionは、ワークシート関数をVBAでも利用できる便利なものです。しかし、今回の、1個、1個カウントするという、A=A+1はコンピュータの原理原則です。変数の意味を理解した上で、worksheetfunctionを利用しましょう。

 

スポンサーリンク

まとめ

今回のまとめ
sesuo6.jpg
新人は、変数を理解したのがわかりませんが、反応は、よかったようです。
1個、1個の知識をわかりやすく教える、
阿久 世子男(アク セスオ)なのでした。

 

今回のサンプルファイルは、No65です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事