【PR】


本広告は、一定期間更新の無いブログにのみ表示されます。
ブログ更新が行われると本広告は非表示となります。
  

Posted by TI-DA at

2010年04月28日

VBAプログラミング楽ちん講座:初級編パート2(8日目)

こんばんわ。
約半月ぶりの更新です。

昨日は4●才の誕生日でした。
子供達に祝ってもらって、プレゼントももらって
誕生日はいいなぁと思いながらも
もう4●かと焦りを感じている今日この頃です。


*---------------------*

それでは本題です。

前回からの続きといっても、忘れている思いますが、
同じような命令を100件も書かなくていい方法を勉強していきましょう。

この処理をプログラミングする場合「変数」という言葉がでてきます。

変数」とは、なんて今は深く掘り下げないで下さい。

いきなりプログラミングの説明をしていきます。

Worksheets("領収証").Range("b10”"))という命令があります。
「領収証」というシートのセル「b10」を指定しています。




この命令に「変数」を使って書くと

= 10
Worksheets("領収証").Range("b” &  ))
と書きます。

セルB20を指定したい場合は
= 20
Worksheets("領収証").Range("b” &  ))
となります。

ここで使った“”という文字が変数になります。

この「変数」は名前を好きにつける事ができます。
GYOでもいいですし、ただの等でもいいです。

細かい取り決めはありますが、今日は省きますね。

変数」の細かい説明もしないうちにどんどん話を進めますが

この変数を効率よく使う為に、「繰り返し」という命令も勉強していきましょう。

単純に、10回同じ処理を繰り返したい時は、

For  = 1 TO 10
Worksheets("領収証").Range("b” &  )
Next 

と書きます。
For~Next という命令を使います。

便利な命令でしょう!。

変数を知らないと、↓こう書きます。

Worksheets("領収証").Range("b1”)
Worksheets("領収証").Range("b2”)
Worksheets("領収証").Range("b3”)
Worksheets("領収証").Range("b4”)
Worksheets("領収証").Range("b5”)
     ・
     ・
Worksheets("領収証").Range("b10”)

変数」と「繰り返し」を理解すると、

For 行 = 1 TO 10
Worksheets("領収証").Range("b” & 行 )
Next 

100行あっても、わずか3行で済みます。

変数」と「繰り返し」これが理解できればプログラミングは楽ちんです。





  


Posted by ミール at 18:39Comments(0)VBA

2010年04月14日

VBAプログラミング楽ちん講座:初級編パート2(7日目)

こんにちは。

またまた、久々の更新です。
決算時期は何かと忙しいですね。

パンを作り始めて気になる事があります。

定期健診で体重が増えている事が判明!
2ヶ月で3キロ増です。

思い当たる節はあるんです。

パン作りを初めてから
お店で売っているパンを見ると

「どんな味なんだろう」、
「柔らかいのかなぁ」
「どうやって作ってるんだろう」って

気になって、ついつい買ってしまうんです。
それを、全部1人で食べてしまうんです。

昨日も、女房と買い物した帰り
店を出ると隣にパン屋があったので
誘惑に負け3個も買って車の中で
食べてしまいました。

パン作りに活かされているのは、いいのですが、
技術的な吸収より、
栄養の吸収の方が遥かに上回っています。

この調子だと来月も、きっと主治医に怒られますね。

*---------------------*

それでは本題です。

前回からの続きです。

売上入力画面から3件のデータを領収証へ編集する
プログラムを作り、実行してみます。

Sub 印刷()

1行目の編集
 Worksheets("領収証").Range("b10") = Worksheets("売上入力").Range("f5")
Worksheets("領収証").Range("e10") = Worksheets("売上入力").Range("g5")
Worksheets("領収証").Range("g10") = Worksheets("売上入力").Range("h5")
Worksheets("領収証").Range("i10") = Worksheets("売上入力").Range("i5")

2行目目の編集
Worksheets("領収証").Range("b11") = Worksheets("売上入力").Range("f6")
Worksheets("領収証").Range("e11") = Worksheets("売上入力").Range("g6")
Worksheets("領収証").Range("g11") = Worksheets("売上入力").Range("h6")
Worksheets("領収証").Range("i11") = Worksheets("売上入力").Range("i6")

3行目目の編集

 Worksheets("印刷").Range("b12") = Worksheets("売上入力").Range("f7")
 Worksheets("印刷").Range("e12") = Worksheets("売上入力").Range("g7")
 Worksheets("印刷").Range("g12") = Worksheets("売上入力").Range("h7")
 Worksheets("印刷").Range("i12") = Worksheets("売上入力").Range("i7")
 
End Sub

前回はここまで作りました。


実際に、売上入力画面に3件のデータを入れてテストしてみましょう。

売上入力画面に商品を3件入力します。



VBEの画面で、作ったプログラムを「F8」の機能を使って実行します。


エクセルの画面に戻って、「領収証」のシートを確認します。



領収証に3件、きちんと編集されました。

それでは、10件の商品を購入した場合どうなるか。
簡単ですよね。

先ほど作った、プログラムの応用で、10件分編集できるように行数を増やしていけば、
いいわけですね。

4行目目の編集

 Worksheets("印刷").Range("b13") = Worksheets("売上入力").Range("f8")
 Worksheets("印刷").Range("e13") = Worksheets("売上入力").Range("g8")
 Worksheets("印刷").Range("g13") = Worksheets("売上入力").Range("h8")
 Worksheets("印刷").Range("i13") = Worksheets("売上入力").Range("i8")
                 ・
                 ・
                 ・
10行目目の編集

 Worksheets("印刷").Range("b19") = Worksheets("売上入力").Range("f14")
 Worksheets("印刷").Range("e19") = Worksheets("売上入力").Range("g14")
 Worksheets("印刷").Range("g19") = Worksheets("売上入力").Range("h14")
 Worksheets("印刷").Range("i19") = Worksheets("売上入力").Range("i14")

とプログラムを入力しました。

でも、ここで何か気付く事はないですか。

この売上入力画面が10件と件数が少ないからいいのですが、
もしですよ、もし・・この件数が100件あったらどうします?

同じ様な命令を、100件も入力するの?面倒くさ!って・・・思うはずです。

もちろん、100件入力しても間違いではありませんが、

「もっと便利な方法」「もっと簡単な方法」がないかなぁっていう思いが
湧いてくるはずです。

そう思った貴方は、間違いなくVBAプログラミングをマスターできるはずです。

面倒な事を、もっと簡単にもっと単純にできないかなという発想
そして、それを調べる事もプログラミングの楽しみです。

100件書かなくてもいい方法を明日から勉強していきましょう。

  


Posted by ミール at 16:11Comments(0)VBA

2010年04月02日

VBAプログラミング楽ちん講座:初級編パート2(6日目)

贅沢な朝食。
焼きたてパンはうまい。


この2、3日、興南高校の応援で仕事もブログの更新も
手につきません。

今日はどうなるのでしょう。

頑張れ!興南!

*---------------------*

それでは、本題です。

前回の続きで
VBEで実際に命令を記述して動かしてみます。

「Sub 印刷」と入力しエンターを押してみて下さい。
すると自動的に



Sub 印刷()

End Sub

という形ができます。


この
Sub 印刷()

End Sub
の間に、命令を入力していきます。

それでは、前回説明した

Worksheets("領収証“).Range("B10") = Worksheets("売上入力").Range("F5")
Worksheets("領収証“).Range("E10") = Worksheets("売上入力").Range("G5")
Worksheets("領収証“).Range("G10") = Worksheets("売上入力").Range("H5")
Worksheets("領収証“).Range("I10") = Worksheets("売上入力").Range("I5")

という命令を入力してみましょう。



早速、思い通りに動くかテストしてみましょう。

そのままの画面で、

SUB 印刷とEnd Subの間にカーソルを持ってきて
「F8」のキーを押します。

「F8」キーは、命令を一つずつ実行させていく機能です。




実行される命令が黄色に反転します。
もう一度「F8」のキーを押します。




Worksheets("領収証").Range("b10") = Worksheets("売上入力").Range("f5") 
命令が実行されます。

もう一度「F8」のキーを押します。



下の命令が実行されます。

もう一度「F8」のキーを押します。

Worksheets("領収証“).Range("G10") = Worksheets("売上入力").Range("H5")
Worksheets("領収証“).Range("I10") = Worksheets("売上入力").Range("I5")

が黄色の反転になり実行されていきます。

END SUB迄実行すると、黄色の反転がなくなります。




これで、このプログラムの処理は終わりです。

それでは、実行結果をみてみましょう。

実行結果をエクセルに戻り、「領収証」のシートを見てみましょう。



商品名に「A4コピー用紙」
個数に「50」
単価に「500」
金額に「25000」と、きちんと編集されました。

だいたい、雰囲気はつかめたでしょうか。

今の応用で、商品を3品迄編集できるように作ってみましょう。

参照する行を一つずつ下げていけばいいわけです。
行を下げるという事は、行番号を増やすという事ですね。

Sub 印刷()

1行目の編集
 Worksheets("領収証").Range("b10") = Worksheets("売上入力").Range("f5")
Worksheets("領収証").Range("e10") = Worksheets("売上入力").Range("g5")
Worksheets("領収証").Range("g10") = Worksheets("売上入力").Range("h5")
Worksheets("領収証").Range("i10") = Worksheets("売上入力").Range("i5")

2行目目の編集
Worksheets("領収証").Range("b11") = Worksheets("売上入力").Range("f6")
Worksheets("領収証").Range("e11") = Worksheets("売上入力").Range("g6")
Worksheets("領収証").Range("g11") = Worksheets("売上入力").Range("h6")
Worksheets("領収証").Range("i11") = Worksheets("売上入力").Range("i6")

3行目目の編集

 Worksheets("印刷").Range("b12") = Worksheets("売上入力").Range("f7")
 Worksheets("印刷").Range("e12") = Worksheets("売上入力").Range("g7")
 Worksheets("印刷").Range("g12") = Worksheets("売上入力").Range("h7")
 Worksheets("印刷").Range("i12") = Worksheets("売上入力").Range("i7")
 
End Sub

これを、実行してみましょう。
続きは明日ですね。


  


Posted by ミール at 12:16Comments(0)VBA