› S・M・C (Simple.Macro.Create) ~エクセルマクロ日記~ › 2010年04月
2010年04月28日
VBAプログラミング楽ちん講座:初級編パート2(8日目)
こんばんわ。
約半月ぶりの更新です。
昨日は4●才の誕生日でした。
子供達に祝ってもらって、プレゼントももらって
誕生日はいいなぁと思いながらも
もう4●かと焦りを感じている今日この頃です。
*---------------------*
それでは本題です。
前回からの続きといっても、忘れている思いますが、
同じような命令を100件も書かなくていい方法を勉強していきましょう。
この処理をプログラミングする場合「変数」という言葉がでてきます。
「変数」とは、なんて今は深く掘り下げないで下さい。
いきなりプログラミングの説明をしていきます。
Worksheets("領収証").Range("b10”"))という命令があります。
「領収証」というシートのセル「b10」を指定しています。
この命令に「変数」を使って書くと
行 = 10
Worksheets("領収証").Range("b” & 行 ))
と書きます。
セルB20を指定したい場合は
行 = 20
Worksheets("領収証").Range("b” & 行 ))
となります。
ここで使った“行”という文字が変数になります。
この「変数」は名前を好きにつける事ができます。
GYOでもいいですし、ただのX等でもいいです。
細かい取り決めはありますが、今日は省きますね。
「変数」の細かい説明もしないうちにどんどん話を進めますが
この変数を効率よく使う為に、「繰り返し」という命令も勉強していきましょう。
単純に、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行で済みます。
「変数」と「繰り返し」これが理解できればプログラミングは楽ちんです。
約半月ぶりの更新です。
昨日は4●才の誕生日でした。
子供達に祝ってもらって、プレゼントももらって
誕生日はいいなぁと思いながらも
もう4●かと焦りを感じている今日この頃です。
*---------------------*
それでは本題です。
前回からの続きといっても、忘れている思いますが、
同じような命令を100件も書かなくていい方法を勉強していきましょう。
この処理をプログラミングする場合「変数」という言葉がでてきます。
「変数」とは、なんて今は深く掘り下げないで下さい。
いきなりプログラミングの説明をしていきます。
Worksheets("領収証").Range("b10”"))という命令があります。
「領収証」というシートのセル「b10」を指定しています。
この命令に「変数」を使って書くと
行 = 10
Worksheets("領収証").Range("b” & 行 ))
と書きます。
セルB20を指定したい場合は
行 = 20
Worksheets("領収証").Range("b” & 行 ))
となります。
ここで使った“行”という文字が変数になります。
この「変数」は名前を好きにつける事ができます。
GYOでもいいですし、ただのX等でもいいです。
細かい取り決めはありますが、今日は省きますね。
「変数」の細かい説明もしないうちにどんどん話を進めますが
この変数を効率よく使う為に、「繰り返し」という命令も勉強していきましょう。
単純に、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行で済みます。
「変数」と「繰り返し」これが理解できればプログラミングは楽ちんです。
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件書かなくてもいい方法を明日から勉強していきましょう。
またまた、久々の更新です。
決算時期は何かと忙しいですね。
パンを作り始めて気になる事があります。
定期健診で体重が増えている事が判明!
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件書かなくてもいい方法を明日から勉強していきましょう。
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
これを、実行してみましょう。
続きは明日ですね。
焼きたてパンはうまい。
この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
これを、実行してみましょう。
続きは明日ですね。