第2講 変数を理解しよう!

第2話 整数型変数
第1話問題解答例
Private Sub CommandButton1_Click()

  Dim a As String, b As String, c As String, d As String
  Dim x As String, y As String, z As String
  Dim p As String, q As String

  a = "明るい "
  b = "優しい "
  c = "忍耐強い "
  d = "前向き "

  x = "太郎"
  y = "花子"
  z = "次郎"

  p = "は "
  q = "そして "

  Cells(5, 1) = x
  Cells(6, 1) = y
  Cells(7, 1) = z

  Cells(5, 2) = p + a + q + b
  Cells(6, 2) = p + b + q + c
  Cells(7, 2) = p + c + q + d + q + a

End Sub

これも保存しておいてください。ファイル名は、何でも結構です。
例えば、『性格診断』
エクセルファイルは、大した容量がありませんので、豆に保存しましょう。
今は、簡単なプログラムしか組んでいませんので、
バックアップをとる必要はありませんが、
大きなプログラムを組むときには、必ずバックアップをする習慣をつけてください。
バックアップするには、名前を付けて保存を使い別のフォルダに保存したり、
同じフォルダに『性格診断BP1』『性格診断BP2』など別名で保存したりします。
特に、プログラムを大きくいじるときは、必ずバックアップをとっておいてください。
理由は、z1z2を押すことを、
実行といいますが、プログラミングはよく実行エラーを起こします。
エラー原因は、
プログラムの組み方そのものに問題がある場合と
単純なスペルミス(タイピングミス)の場合の2つがあります。
プログラムは、何万行の中にたったひとつのタイピングミスがあるだけで、
実行エラーを起こします。
そして、その原因がなかなか解明できないこともあります。
VC++で数独問題作成ソフトを作っているときには、
実行エラーの理由がわからず、
1,2週間もあうでもない、こうでもないと試行錯誤を繰り返していたら、
結局たったひとつのタイピングミスであったこともありました。
実行に成功したら、いったんいくつかのファイル名で保存し、
バックアップしてからプログラム大きくいじることにしましょう。
そして、実行エラーしてどうしても原因が解明できないときは、
現在のファイルを閉じ別名で保存してあったバックアップファイルを開きます。
開いたら、すぐに名前を付けて保存で、
エラーを起こしたファイル名で保存し直します。
そうすると、エラー原因のわからなかったファイルの復旧となります。
例えば、『性格診断』が実行エラーを起こして、
どうしても原因が解明できないときは、
『性格診断BP1』を開いて、
名前を付けて保存を使い『性格診断』で保存し直すのです。
このとき、上書きしますかと聞いてきますので、上書きを選んでください。
バックアップする方法は、私はロールプレイングゲームから発想しました。
ロールプレイングゲームの必勝法は、豆に保存し、何カ所も保存しておくことです。
A→B→C→Dと旅をするとうまくいかないときは、例えばBまで戻って、
A→F→C→Bなどと冒険をし直すことが必勝法です。
それぞれの段階で、別名で保存しておけば、
Cまで戻って冒険をやり直すなどが、可能になります。
VBAなどのプログラムでも、
必勝法は「豆に保存する」「別名で保存し、
バックアップをとっておく」ということです。
尚、このバックアップをとるという話は、
大変大切な話ですので、後にひとつの話をもうけて繰り返す予定です。



次は、整数型変数の練習をしてみましょう。
先に作った『性格診断』を改良しますので、
名前を付けて保存を使い、
『整数型変数の練習』という名前で保存し直しましょう。
このようにすると、
実行ボタンや消去ボタンを改めて作る必要がありません。
実行ボタンや消去ボタンを作る作業は共通ですから、
新規作成で改めて作るのは、作業の無駄です。
『別名で保存する』はここでも活躍します。
そして、コードを次のように変更してみましょう。
Private Sub CommandButton1_Click()

  Dim a As Integer, b As Integer, c As Integer

  a = 5
  b = 8
  c = a + b

  Cells(5, 1) = "aの値="
  Cells(6, 1) = "bの値="
  Cells(7, 1) = "aとbの合計="

  Cells(5, 2) = a
  Cells(6, 2) = b
  Cells(7, 2) = c

End Sub

Private Sub CommandButton2_Click()

  Rows("5:100").Select
  Selection.ClearContents
  Cells(1, 1).Select

End Sub
(こちらは共通なので、いじらない)


実行画面
z3
aとbの合計が表示し切れていません。
このようなときは、z4
赤い線のところにカーソルを合わせて、
ドラッグしてください。z5
ついでに、
見栄えをよくするためにBとCの間の境界線にカーソルを合わせてドラッグして、
z6としておきましょう。
直す列をまとめて、列幅を変更するときは、
z7
Bから例えばOまでドラッグしておいて、選択状態にしておいて、
間の任意の境界線のところでドラッグします。
z8
整数の大きさに応じて、列幅は適宜変更しましょう。

合計が計算できました。
ですが、このプログラムは少しもありがたさがありません。
別の値で計算させたいときは、
いちいちコードをいじらなければならないからです。
そこで、コードとシートを変更し、
aとbの値はエクセルシートから取得できるように変更しましょう。
シートは、次のようにしておきましょう。
z9赤い囲いの値は、手での入力です。
現在の消去のコードだと、この部分も消えてしまいますので、
次のように変更しましょう。
Private Sub CommandButton2_Click()

  Columns("B:O").Select
  Selection.ClearContents
  Cells(1, 1).Select

End Sub
つまり、5行目から100行目までのクリアからC列からO列までの消去に変更したわけです。
実行のコードは、
Private Sub CommandButton1_Click()

  Dim a As Integer, b As Integer, c As Integer

  a = Cells(5, 2)
  b = Cells(6, 2)
  c = a + b

  Cells(7, 2) = c

End Sub
さて、キーボードからz10
と入力してから、実行ボタンを押してください。
z11合計が計算されました。
消去ボタンを押しましょう。
z12データが消えました。
再度キーボードからB5とB6に適当な値を入れ、実行ボタンを押しましょう。
z13
つまり、簡易計算プログラムを作ったことになります。
これももう少し高度化しましょう。
シートを次のように変更し、
z14B5,B6,B7に値を入れ、
実行ボタンを押すと各計算が出来るように実行のコードを変更しましょう。
B5からB7に罫線を入れたのは、ここが入力セルであることを示すためです。

尚、VBやVBAではa×bはa*bと書きます。
×がないので*で代用しているわけです。

皆さん、終了したり次の作業に入るときは上書き保存を忘れないでください。
上書き保存は、z15
のアイコンz16を使ってもいいですが、
是非、Ctrl+s という方法を覚えてください。
Ctrlキーとsを同時に押すと、上書き保存になります。

皆さん、プログラムの必勝法は豆に保存することです。
実は、ワードやグラフィックソフトでも必勝法は、豆に保存することです。
そうすれば、グラフィックソフトで修復できないほど大きく失敗してしまったときは、
保存したファイルを開けばよいのです。
おそらく、皆さんは次のように作業されていると思います。
ワードやグラフィックソフトで、
文書や絵が完成してから名前を付けて保存されているのではないでしょうか。
私のお薦めの方法は、
表題ぐらいを書いて最初に名前を付けて保存することです。
そして、ちょっと疲れたなと思ったらCtrl+sをするのです。
ワードなどには、一応自動バックアップシステムがありますが、
これは余り信用なさらない方がいいかと思います。
自動バックアップされている場合もありますが、
失敗しているときもあります。
失敗しているときは、
2時間ぐらい一度も保存せず、
仕事をしているときにフリーズなどを起こした場合、
すべての作業が無駄になってしまいます。
ですが、豆にCtrl+sをしていれば、失われる作業は数分です。
つまり、5分に1回程度はCtrl+sをしてほしいわけです。






第1話へ
 第3話へ


004


vc++講義へ
vb講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
数学研究室に戻る