第1講 始めようVBA!
第3話 挨拶プログラム
実行ボタンが出来たら、いよいよプログラミングです。
第2話で作ったボタンをダブルクリックしましょう。
すると、自動的にVisual Basicが起動します。
赤い囲いにコード(プログラムの文章)を書きます。
カーソルが、上図の位置にあることを確認して
Tabキーを押してから、
Pribate Sub CommandButton1_Click()
Range("A5") = "VBAの世界にようこそ!"
End Sub
と入力してください。
入力できたら、
カーソルをPrivate Sub CommandButton1_Click()とEnd Subの間に
戻してから、
赤い囲いのボタンをクリックします。
そして、
赤い囲いにカーソルを合わせ左側のExcelを選びエクセルに戻ってください。
(尚、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の世界にようこそ!"は
そのセルに『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の世界にようこそ!"は、
""中以外は、小文字・大文字、半角・全角のいずれも違うとエラーします。
""中以外はすべて半角でなければならないことを覚えてください。
プログラミングにおいては、""の中以外はすべて半角です。
""の中はその通りに、表示されますので適当に打ってもエラーはしません。
記述の仕方ですが、
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
を使う習慣をつけましょう。
New! eclipse c++ 入門
NEW! 魔方陣 数独で学ぶ VBA 入門
NEW数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
数学研究室に戻る