VBでのプログラミングを実習してきたとのことで、データ型に関する補足説明を述べる。
フォームのテキストボックスで入力したデータは、文字列である。これをVBでは自動的に数値に変換して演算してくれたりするが、うまくいかないときもある。
例えば "100" + "110"
これを文字列としてつなぐと "100110"(VBは、文字列の結合にも+を使う)
数値として加算すると "210"
従って、仕様どうりに、数値に変える関数Val()を使って、自分で数値型に変えて取り扱うのが良い。
なお、VBの学習での参考になるWebサイトのいくつかを紹介している。
Wordのテキストで、Webサイトのファイルを作っている。それを情報系のWebサーバへ登録したが、不完全なままの状態の人がいた。ローカル(あるいは、ホームフォルダ)では、index.htmをダブルクリックして、ブラウザIE5で正しく表示されているなら、Webサーバで表示が出来ない原因は、Webサーバへの転送が出来ていない可能性がある。index.htmからのリンクやイメージのパス名が正しくない場合もある。
このWebサーバでのファイル一覧などの確認とファイルの転送は、コマンドラインでもできるが、GUIのffftpなどが便利である。
なお、Unixでは、フォルダ名・ファイル名を半角英数字のみにするのが良い(_線なども使えるが)。大文字と小文字も区別するので、要注意である。
例題が表示できた方は、今後、各自のWebサイトを作ってみてください。
ショートカットキーの利点は、両手を使っての早い操作を可能にすること。右手でマウスを選択や位置の指定に使い、左手のショートカットキーでコピーや貼付けなどを指定する。
この表にあるショートカットキーは、ほかのテキストエディタやワープロソフトでも使えるものがある。それぞれのアプリケーションソフトでのショートカットキーは、メニューの右端に表示されるので、それを参照することが出来る。
プログラムが正しく動くようにすることをデバッグ(虫取り)という。
文法上のエラーは、自動構文チェック機能で分かる。関数名などのエラーもコンパイルエラーで反転された関数名からわかる。問題は、論理的なエラーである。考え間違いや変数名の間違いなどである。自分の思い込みがあるため、単語のスペルの間違いなどがあるのに見つけるのに時間が掛かったりする。
エラーを修正して正しくなったら、コードの変更をしない限り、再度、コンパイルが出来ないようになる。(これは、コンパイルの必要性が無いから、当然のことだが。)
テキストでは、select case 文を使ってセルごとの数の計算関数を作っている。繰返しが多いので、配列とfor next文を使って作ると、以下のようになる。
Function mk(total, unit)
Dim i As Integer
Dim u_t(10) As Long '配列で金種の表を作る
u_t(1) = 10000
' u_t(2) = 5000
' u_t(3) = 1000
' u_t(4) = 500
' u_t(5) = 100
' u_t(6) = 50
' u_t(7) = 10
' u_t(8) = 5
' u_t(9) = 1
For i = 2 To 8 Step 2
u_t(i) = u_t(i - 1) / 2
u_t(i + 1) = u_t(i) / 5
Next i
If unit = 10000 Then ' 計算式は2つである。
mk = Int(total / unit)
Else
For i = 2 To 9
If unit = u_t(i) Then
mk = Int((total Mod u_t(i - 1)) / unit)
Exit For ' 一致したら、ループから抜ける
End If
Next i
End If
End Function
関数を使うときの金種(2つめの引数)は、セルの行のみ絶対参照(例D$4)にすると、この関数式で列方向(横)のコピーができる。
以上