第1講 始めようVBA!

第3話 挨拶プログラム
実行ボタンが出来たら、いよいよプログラミングです。
第2話で作ったボタンをダブルクリックしましょう。
すると、自動的にVisual Basicが起動します。
78
赤い囲いにコード(プログラムの文章)を書きます。
カーソルy2が、上図の位置にあることを確認して
Tabキーを押してから、
Pribate Sub CommandButton1_Click()
  Range("A5") = "VBAの世界にようこそ!"
End Sub
と入力してください。
入力できたら、45
カーソルをPrivate Sub CommandButton1_Click()の外にある場合は、
35
Private Sub CommandButton1_Click()とEnd Subの間に戻してから、
赤い囲いのボタンy4をクリックします。
エクセルに戻ってください。
Visual Basicからエクセルに戻るには、
AltキーとファンクションキーのF11を同時に押せばよいのです。
この講義では両方を同時に押すことをAlt+F11と表記します。
さらに、Alt+F11をすると今度はVBAに戻ります。
ですから、Alt+F11によってエクセルとVBAの交互の切り替えができるのです。
何回かAlt+F11をしてみて、
VBAとエクセルが交互に切り替わることを確認してください。)
すると、09
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に切り替えてください。
y7
y8
意味のまとまりごとに段組がされています。
これを
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
と書いたのでは、どこが意味のまとまりなのかさっぱりわからなくなります。
それに対して、
y9
ならば、入れ子式に意味のまとまりがあることがわかります。

というわけで必ず段組をする習慣をつけてほしいわけですが、
段をずらすときに、全角スペースは使わないようにしましょう。
段をずらすときにはTabキーか半角スペースを使ってください。
VBAでは、
全角スペースを使って移動してもエラーしませんが
C++、Javaその他の言語ではエラーしますので、
Tabキーで移動させる習慣をつけましょう。
半角スペースは使ってもかまいませんが、
y10
では、段組が明確ではありません。Tabキーを使った
y11
の方が段組が明確です。
節約のためにノートを改行しないで使う生徒がいますが、
残念ながらそれは学力の節約になっています。
プログラムにおいてはスペースをけちらない習慣をつけましょう。
y12
の方がコードが読みやすくなります。
プログラムにおいては、
余白は節約せずわかりやすさを優先してください。

ですから、
右への移動はTabを使い、左への移動はBackSpace
を使う習慣をつけましょう。


第2話へ 第4話へ

004

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言語入門 基礎から応用まで
本サイトトップへ