[ バックナンバー目次 ]
[ 掲示板 ]
[ VBA系メニュー ]
[ 総合メニュー ]
三流君 VBAで楽しくプログラミング VBAメルマガ 登録と解除
■昔、登録ページでした。今はメルマガ休刊中です。
サンプルです、読んで笑ってください
<プログラムって?流れって?>
こんにちは、
解説系は不得手な三流プログラマーKen3です。
プログラムって言うと、何を思い浮かべますか?
競馬のレーシングプログラム、、、運動会のプログラム、、、など、、、
運動会のプログラムなどは、順番に上から下に進んでいきます。(競馬の出走順も)
・開会式
・100メートル走
・玉入れ
・昼休憩 ←あれ、もう昼?
・リレー
・閉会式 ←もう、終わり、、、騎馬戦ないの?...気にしないで、、
開会式から閉会式まで、上から下に、流れていきます。
まぁ、通常は、そんな感じですが、
いつも同じことをするほど、(いつも同じじゃ、使えないでしょ)
プログラムは甘くなく、
変数の状態によってやること変えたり、(腹へったから、玉入れ中止、昼にする?)
繰り返したり、流れを組み合わせます。
ア.基本は、上から下に流れます。
運動会のプログラムのように
イ.分岐する場合
高校野球などのコールド試合(ルール知らないので、細かい点差、間違ってたら、、)
通常は、1回から9回まで進みます。
1回
2回
・
・
5回 ここで点差が10点以上ならコールドゲームで試合終了
・
・
9回 得点の多いチームの勝ち 同点の場合は延長戦へ
10回 どちらかが、多く得点を取るまで続く
・
・
18回 引き分け再試合
など、ある条件(ここでは、イニング回数と得点差ですね)
で実行する作業(コールドなのか、、延長なのか、、再試合、、)
を判断する。
ウ.繰り返し
分岐と似ているのですが、繰り返し処理で(無限ループもある?)
表現悪いですが、今風のたとえ話で、
ストーカー君が好きな子に
start
↓
付き合ってください
↓
イヤダ
↓
ここで彼女は考える、そろそろ、警察につきだそうか、家族にそうだんするか
(10回ぐらい付きまとわれた、、警察に相談-->ストーカー君end逮捕)
↓
startへ戻るを繰り返す...
(まったくストーカーってヤツは..頭の中の判断がおかしい、、、なんてね)
まぁ、冗談ですが、プログラムは、どんなものでも、
処理の流れ、分岐の繰り返し、組み合わせだと思います。
チョット前にやったInputBoxのテストプログラムも、
下記のような順序で基本は上から下へ流れてます。
Sub test()
Dim strMOJI As String
'ここで、文字を入れる、、
strMOJI = InputBox("好きな人の名前を入れてください")
'入力文字数のチェック
If Len(strMOJI) = 0 Then
MsgBox "ノリの悪いヤツだなぁ、面白くないなぁ"
Exit Sub
End If
'結果表示
If MsgBox(strMOJI & "さんに告白したの?", vbYesNo) = vbYes Then
MsgBox "やりますねぇ"
Else
MsgBox "がんばってくださいね"
End If
End Sub
・変数の定義(開会式?)Dim strMOJI As String
・好きな子の名前入力 strMOJI = InputBox("好きな人の名前を入れてください")
・入力文字数判断 If Len(strMOJI) = 0 Then
0文字の時は警告出して関数を抜ける Exit Sub
・結果表示と確認 If MsgBox(strMOJI & "さんに告白したの?",〜
vbYes ... MsgBox "やりますねぇ"
vbNo .... MsgBox "がんばってくださいね"
・End Sub(閉会式?)
なんか、少し、ズレてる気がするけど、
拾い読みして、
1つでも何かの参考となれば幸いです。
<プログラムって?一直線プログラム>
こんにちは、
解説系は不得手な三流プログラマーKen3です。
プログラムには流れがある、、
なんて、偉そうに言いましたが、
基本は、上から下に流れるんですね。
Sub test()
MsgBox "プログラムは、上から下に流れます"
MsgBox "まんなか、、"
MsgBox "今日も一日がんばりましょう"
MsgBox "こんな感じです"
End Sub
少々うざいですが、こいつを実行するとメッセージが4つ表示されて行きます。
三流君さぁ、だから?なに?って感じなんだけど。
えっと、上から順番に命令を実行しているのがわかったと思います。
なんか、ツマンナイね。
そうですか?
Excelでマクロを記録ってあるの、ご存知ですか?
操作を記録して、VBAのコードを自動で作成してくれます。
たとえば、セルのB4に”横浜の金城は、カネシロじゃないよ”と入力し、
太字にすると、下記のように記録されます。
Sub Macro1()
'
' Macro1 Macro
' マクロ記録日 : 2001/2/26 ユーザー名 : K
'
Range("B4").Select
ActiveCell.FormulaR1C1 = "横浜の金城は、カネシロじゃないよ"
Range("B4").Select
Selection.Font.Bold = True
End Sub
なんか、いろいろ記録されていて、よくわかりませんが、操作を記録してくれます。
これも、上から下に決まった処理を行っています。
上から下に流れるだけでは、なんとなくプログラムと言えませんねぇ。
そんな固定処理は無いでしょう。
そうですねぇ、、
まぁ、はじめは一直線プログラムで、
メッセージが表示されて、おっ、なんて嬉しがってくれると。
次は、変数と計算です(予定)
今回は、物足りなかったかも?なんて思ってます。
拾い読みして、
1つでも何かの参考となれば幸いです。
<プログラムって?変数ってなんですかぁ?>
こんにちは、
解説系は不得手な三流プログラマーKen3です。
一直線プログラムはプログラムじゃない?
なんて声が聞こえてきそうですが、
分岐、ループの前に、今回は、
変数
を軽めに書こうと思います。
Sub test()
MsgBox "プログラムは、上から下に流れます"
MsgBox "まんなか、、"
MsgBox "今日も一日がんばりましょう"
MsgBox "こんな感じです"
End Sub
と前回は上から下へ固定の動きをするプログラムを書いてました。
変数って、言葉で説明すると説明しにくいんだけど
(それは、三流君が説明ベタってことだよねぇ(笑))
はじめは、
値を入れる、記憶するハコ(メモリ)に名前を付けて使う
って感じで覚えておいてもらえると、ありがたいです。
またまたぁ、どんな感じだっての?
Sub test2()
Dim a As Integer
a = 10
MsgBox a
End Sub
まず、変数を使用するには、変数宣言をします。
宣言の方法は、
Dim a As Integer
dim 変数名 as 変数の型です。
aって名前のInteger型の変数をこれから使うよ(確保します)
a = 10
変数aに10を代入します。
MsgBox a
メッセージボックス関数で変数aを表示します。
質問、Integer型って何よ?初耳です私。
まぁ、a=10は代入ってのは、なんとなくわかるけど。。。さ。
変数の型ってのは、いっぱいあって主なのだけ書くけど、
整数型 (Integer) 2 バイト -32,768 〜 32,767
長整数型 (Long) 4 バイト -2,147,483,648 〜 2,147,483,647
単精度浮動小数点数型 (Single) 4 バイト
倍精度浮動小数点数型 (Double) 8 バイト
文字列型 (String) (可変長) 10 バイト + 文字列の長さ 0 〜 2GB
日付型 (Date) 8 バイト 西暦 100 年 1 月 1 日〜西暦 9999 年 12 月 31 日
オブジェクト型 (Object) 4 バイト オブジェクトを参照するデータ型
なんてのがあります。
で?
でっと言われてもなぁ。
使用するものに合った型を選んでください。とそっけなく言ってみたり。
次のサンプルを見て下さい。
Sub test3()
'変数の定義
Dim a As Integer
Dim b As Integer
Dim c As Integer
'代入と計算
a = 5
b = 7
c = a * b
MsgBox c '結果表示
End Sub
まぁ、余裕ですね?
a,b,cの名前を付けた変数を宣言して、
aに5をBに7を代入、
cには、a*bの計算結果が代入されます。
で、結果を表示。
三流君さぁ、オイラ、Excelで表作ったりしてるんだよ、
C3のセルに=a1*b1とかやってるし、
あまりなめたマネしないでくれる?
もしかして、*は×で/が÷ですなんて説明するつもり?だったとか?
ギク、、、+−*/はご存知でしたか。
そっか、Excelで計算式作ってるから、みなさん、式はOKかなぁ。
変数って言ってるけど、セルの番地みたいなもんと軽く覚えてもらえば、
いいのか。セルも値が入るハコだしねぇ。
Dim a1 As Integer の整数型でa1を宣言する
まぁ、イメージの問題なので、わかりやすいほうで。
だと、下記は理解に苦しむ式になるのでは?
Sub test4()
'変数の定義
Dim a As Integer
'初期値の代入
a = 1
'計算式
a = a + 1
a = a + 1
MsgBox a '結果表示
End Sub
ポイントは、a = a + 1ですね。
数学だとありえない等式だ、、、なんて言わないで、
=記号は代入だと覚えてください。
先に右辺の計算 a+1を行い、結果をaに代入します。
この感覚を違和感無く使えるようにすぐなるんだけど。
結果は?(自分で試してみてください)
変数には、いろいろな型がある、
=は代入です。
いろいろ引っ張りまわしたけど、今回はこれだけでよかったのかも。
次回も変数の続きかなぁ、、それとも気分を変えて。
そろそろトバシテイカナイトと思いつつ。。。
拾い読みして、
1つでも何かの参考となれば幸いです。
---
毎週木曜日はキャンペーンの日、ここでしか買えない商品も・・・
株式会社セガ
...
三流君のHP主な飛び先
人気ページ/アクセスランキング
↑一週間の訪問者数と人気のページを表示してます
その他、宣伝ページです
・[
アンケート/ポイント]などで月500円を必死に稼いでます(笑)
・[
SOHO/在宅プログラマー/派遣]の話題、Webエントリー後の反応など
・[
ネットで小金を稼げるか?]実験中だが成果は無し
※あとは、[パソコン関係の書籍]や[ゲームソフト]、
[パソコンパーツ]
をバナーから売ろうとするけど、
なかなかうまくはいかないよね(笑)
...