広告

【プログラミング入門】【VBA】8日目 If(もし~だったら)パート2

2022.10.10更新

ExcelVBAでプログラミング入門のタイトル画像になります

お仕事などでお馴染みの表計算ソフト、エクセルに付属しているExcelVBA(エクセルブイビーエー)というプログラミング言語を使って初心者・入門者向けにプログラミングのキホンを解説していきます!

ExcelVBAができるようになれば業務内容によってはボタン一つで大幅な業務効率化ができる他に、普段のエクセルの使い方も段違いにレベルアップする事ができます!

ベテランの方も新人さんも興味のある方はぜひ挑戦してみてください!

Ifの仕組み

今回はもう少し詳しくIf命令の仕組みについて見ていきましょう。

条件式の結果

まずは次のプログラムを実行してみてください。

■8日目 プログラム1■


'8日目 プログラム1

Sub test()

	Dim a As Integer
	Dim b As Integer
	Dim kekka1 As Boolean
	Dim kekka2 As Boolean
	Dim kekka3 As Boolean

	a = 100
	b = 100

	kekka1 = (a = b)

	b = 80

	kekka2 = (a = b)
	kekka3 = (a > b)

	MsgBox "kekka1 = " & kekka1 & vbCrLf & _ 
		"kekka2 = " & kekka2 & vbCrLf & _ 
		"kekka3 = " & kekka3

End Sub

■実行結果■

条件分岐「If」命令の仕組みの説明画像1

■説明■

不思議な計算と不思議な結果が出てきましたね。

これは変数「a」と変数「b」の条件式の結果を変数「kekka1・kekka2・kekka3」にそれぞれ入れたものになります。

実は条件式は「If」命令の中だけではなく直接行う事ができて、その条件式の結果というものがあるのです。

2つの状態「Boolean値」

謎のキーワードが出てきました。

「Boolean」こちらはブーリアンという変数の型の一つで「True」と「False」という2つの言葉で2種類の状態を表したものになります。

それを踏まえた上で先ほどのプログラムを一つ一つ見ていきましょう。


a = 100
b = 100
kekka1 = (a = b)

わかりやすいように変数「a,b」の内容も並べてみました。

ここでの条件は(a = b)なので「a」と「b」は同じか?ですね。

そして答えの「kekka1」の内容は「True」となっております。

次の部分も見てみましょう。


a = 100
b = 80
kekka2 = (a = b)

次は変数「b」の内容を変えてみました。

条件は最初と変わらないですね。

「kekka2」の内容は「False」になりました。

では最後もう一つ見てみます。


a = 100
b = 80
kekka3 = (a > b)

条件を変えて(a > b)、「a」は「b」より大きいか?という条件にしてみました。

「kekka3」の結果は「True」になりましたね。

広告

つまりどういう事?

これはどういう事かと言いますと条件式は

条件が合っている場合は「True」

条件が合っていない場合は「False」

という結果になるのです!

Ifの最終形態

さて、このへんでするどい方やプログラミングを愛してやまない方は気づいたかもしれません。

さきほどの条件式でこのような結果になるという事は直接その結果を「If」命令なんかにいれたらどうなるのだろうか?と

それを試したプログラムになります。

■8日目 プログラム2■


'8日目 プログラム2

Sub test()

	If True Then
		MsgBox "条件が「True」の場合"
	End If

	If False Then
		MsgBox "条件が「False」の場合"
	End If

End Sub

■実行結果■

条件分岐「If」命令の仕組みの説明画像2

■説明■

結果は予想どおり条件が合う「True」の場合だけ実行されました!

そうなんです!If命令は最終的にこの条件式の結果である

条件が合っている場合は「True」

条件が合っていない場合は「False」

によって条件分岐していたのです!

これはコンピューターが電気を流す、流さないのスイッチのカタマリのような仕組みでできているからに他なりません!

そしてこの「True」の事を「真」または数字の「1」、「False」の事を「偽」または数字の「0」、さらには英語で旗を意味するフラグを立てる(True)、フラグを下げる(False)なんて言い方もしたりします。

「True」・・・「真」または「1」

「False」・・・「偽」または「0」

まあ今の時点では何の事やらという感じだと思いますがプログラミングを理解する上で大事な考え方になるので覚えておいてください。

「スイッチのカタマリ」コンピューター

ここからは少しプログラミングから離れてコンピューターの仕組みの一つであるオンとオフ2種類の状態しかないスイッチだけで数を表す仕組みをご紹介したいと思います。

今すぐにプログラミングに必要って事でもないので興味あればお聞きください。

スイッチだけで数を表す仕組み

「2進数」という言葉を聞いた事がありますでしょうか?

コンピューター好きなら一度は聞いた事があるかもしれません。簡単に言ってしまうと数の進み方で2になったらケタが上がる数の事を2進数といいます。

いつも私達が使っている数の進み方は10進数といいます。これは10になるとケタがあがる数の事をいいます。

10進数

123456789→10

2進数

1→10

10まで数えると・・・。

1(1)→10(2)→11(3)→100(4)→101(5)→110(6)→111(7)→1000(8)→1001(9)→1010(10)

(カッコの中は10進数です!)

ちょっと裏ワザっぽいですがいちよう「0」と「1」だけで「10」まで数える事ができました。

そしてこの「0」と「1」をスイッチのオフ、オンに当てはめてたくさんスイッチを並べると・・・。

スイッチだけでいろいろな数を表せるようになりますね!

そんなワケあるかいっ!

という声が聞こえてきそうですが、ほんとにこういう仕組みなんかが元になってコンピューターはできているのです。

以上、スイッチだけで数を表す仕組みでした。

次回はわかりやすく便利な枝分かれ「Select」命令をご紹介します!

次回

9日目 枝分かれ「Select」

広告

Copyright 2016 K.N/petitetech.com