第1講 始めようVBA!
第3話 挨拶プログラム
実行ボタンが出来たら、いよいよプログラミングです。
第2話で作ったボタンをダブルクリックしましょう。
すると、自動的にVisual Basicが起動します。
赤い囲いにコード(プログラムの文章)を書きます。
カーソルが、上図の位置にあることを確認して
Tabキーを押してから、
Pribate Sub CommandButton1_Click()
Range("A5") = "VBAの世界にようこそ!"
End Sub
と入力してください。
入力できたら、
カーソルをPrivate Sub CommandButton1_Click()の外にある場合は、
Private Sub CommandButton1_Click()とEnd Subの間に戻してから、
赤い囲いのボタンをクリックします。
エクセルに戻ってください。
Visual Basicからエクセルに戻るには、
AltキーとファンクションキーのF11を同時に押せばよいのです。
この講義では両方を同時に押すことをAlt+F11と表記します。
さらに、Alt+F11をすると今度はVBAに戻ります。
ですから、Alt+F11によってエクセルとVBAの交互の切り替えができるのです。
何回かAlt+F11をしてみて、
VBAとエクセルが交互に切り替わることを確認してください。)
すると、
A5のところに『VBAの世界にようこそ!』と表示できています。
プログラムの成功です。
カーソルをA5に合わせて、
Deleteキーを押して『VBAの世界にようこそ!』を消してください。
実行ボタンを押してみてください。
すると、再び『VBAの世界にようこそ!』が表示されます。
コードの意味を説明しましょう。
Range("A5") はエクセルシートのセルA5を意味します。
= "VBAの世界にようこそ!"は
そのセルA5に『VBAの世界にようこそ!』を代入せよの命令です。
尚、
Private Sub CommandButton1_Click()
Cells(5, 1) = "VBAの世界にようこそ!"
End Sub
とコーティング(コードを書くこと)しても結果は同じです。
気をつけなければならない点は、
Cells(5, 1)とRange("A5") では列(縦列)・行(横列)の対応が反対である点です。
Range("A5") の方は、
エクセルと同じで列(A)・行(5)となっているのに対してCells(5, 1)では、
5(行)・1(列)となっています。Cellsを使う場合は、エクセルの列行に対して、
行列と反対になっていることに注意しなければなりません。
反対になっていることで頭が混乱しますが、
この講義では主に後に学習するFor文などの
繰り返し処理に向いているCellsを使用します。
※日常語では、縦列も横列も列と言いますが、
数学やプログラミングの世界では、
縦列を単に列と言い、横列を行と呼びます。
覚えて下さい。
さて、次に消去ボタンを作り、
カーソルをA5に合わせてからDeleteキーで消すのではなく、
消去ボタンを押すと自動的に消えるようにしたいと思いますが、
その前に、いくつかの記述上の注意点を述べます。
Range("A5") = "VBAの世界にようこそ!"は、
""中以外は、小文字・大文字、半角・全角のいずれも違うとエラーします。
""中以外はすべて半角でなければならないことを覚えてください。
プログラミングにおいては、""の中以外はすべて半角です。
(ただし、VBAの場合
range("A5")="VBAの世界にようこそ!"
と小文字で入力しても、自動的に
Range("A5") = "VBAの世界にようこそ!
となりますので、""中以外はすべて小文字で入力しても大丈夫です。
つまり、必要に応じて大文字に自動的に変換してくれるのです。
すべて半角小文字で入力する習慣をお勧めします。)
""の中はその通りに、表示されますので適当に打ってもエラーはしません。
記述の仕方ですが、
Pribate Sub CommandButton1_Click()
Range("A5") = "VBAの世界にようこそ!"
End Sub
は
Pribate Sub CommandButton1_Click()
Range("A5") = "VBAの世界にようこそ!"
End Sub
としても、何の影響もありません。
しかし、
Pribate Sub CommandButton1_Click()
Range("A5") = "VBAの世界にようこそ!"
End Sub
のように段組をする習慣を必ず付けてください。
もう一度数独問題作成ソフトVer7(6題連続作成用)をクリックして開いて、
Alt+F11をしてVisual Basicに切り替えてください。
意味のまとまりごとに段組がされています。
これを
Private Sub CommandButton1_Click()
Dim i As Byte
Dim j As Byte
Worksheets("Sheet1").Cells(3, 1).Select
Randomize (Timer)
kyuu = Cells(4, 25)
jyouken
For kaisuu = 0 To 5
tz0 = 1
Do While tz0
syokika
totalkaiseki1
bangousakusei (0)
sakusei (0)
hozon
bangouhenkan
mondaisakusei
If cn = 1 Then
If kyuu = 1 Then
If sikoukaisuu > 30 And sikoukaisuu < 51 Then
Exit Do
End If
End If
If kyuu = 2 Then
If sikoukaisuu > 50 And sikoukaisuu < 121 Then
Exit Do
End If
End If
If kyuu = 3 Then
If sikoukaisuu > 120 And sikoukaisuu < 201 Then
Exit Do
End If
End If
If kyuu = 4 Then
If sikoukaisuu > 200 Then
Exit Do
End If
End If
End If
Loop
hyouji
Next
End Sub
と書いたのでは、どこが意味のまとまりなのかさっぱりわからなくなります。
それに対して、
ならば、入れ子式に意味のまとまりがあることがわかります。
というわけで必ず段組をする習慣をつけてほしいわけですが、
段をずらすときに、全角スペースは使わないようにしましょう。
段をずらすときにはTabキーか半角スペースを使ってください。
VBAでは、
全角スペースを使って移動してもエラーしませんが
C++、Javaその他の言語ではエラーしますので、
Tabキーで移動させる習慣をつけましょう。
半角スペースは使ってもかまいませんが、
では、段組が明確ではありません。Tabキーを使った
の方が段組が明確です。
節約のためにノートを改行しないで使う生徒がいますが、
残念ながらそれは学力の節約になっています。
プログラムにおいてはスペースをけちらない習慣をつけましょう。
の方がコードが読みやすくなります。
プログラムにおいては、
余白は節約せずわかりやすさを優先してください。
ですから、
右への移動はTabを使い、左への移動はBackSpace
を使う習慣をつけましょう。
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ第2部へ
小学生からエンジニアまでのRuby入門へ
小学生からエンジニアまでのC言語入門 基礎から応用まで
本サイトトップへ