スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

よくわかるVBA講座実践塾(VBA部品の紹介と勉強)

 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
    よくわかるVBA実践塾(VBA部品の紹介と勉強)
   (エクセルの初心者対象・プログラムの大革命)
http://vba.asai.net
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓VBAをマスターして仕事を早くして給料をあげよう。儲かる会社にしよう☆
┗╋━━━━━━━━━━━━━━━━━━━━━━━━━━……………
 ┃    VBA実践塾は、VBAはプログラムを作るのではない
部品を修正して使うという考え方で実施しております。
 ☆。.:*:・’゜  ─ 部品の公開メルマガ No66─
  ……………━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
   よくわかるエクセルVBA実践(部品を使うための知識)
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
┌─┐
│1├───────────────────────────────┐
└┬┘★前回は幼稚園の経理システム(その2)を説明しました★    |
 └────────────────────────────────┘
前回は幼稚園の経理システム(その2)を説明しました。
inputboxを使って入力した科目を計算するプログラムを勉強しました。
繰り返しを使ってエクセルをデータベースとして使いif文で検索をしながら
変数を使って合計を計算する。
VBA実践塾の一番のポイントになるところです。
今回はピポットテーブルをVBAで作るサンプルを公開しました。
エクセルのピポットテーブルは便利でデータ分析するには最適なツール
だと思います。
例えば定型業務として期間を入力してそのデータを2次元で分析する場合は
VBAで作らないと合理化にならないと思います。
少し難しいですが挑戦してください。
http://vba.asai.net/spipotto.html
楽天はじめ色々なネットショップを使っていますので今回無料・自由の
ヤフーショッピングを使いました。
出店する商品が決まっている場合はショップを5分で作ることができます。
昔プログラム言語でお買いものカゴを作っていたことを考えれば非常に
便利です。
一番気に入ったのはJCB・VISA・UCのカードが契約せずに使うことが出来ることです。
一度ネットビジネスに挑戦してみたらどうですか。
http://store.shopping.yahoo.co.jp/vba/

  質問のある方またご意見のある方は自由にメールをしてください。
 
┌─┐
│2├───────────────────────────────┐
└┬┘★今回は幼稚園の経理システム(その3)を説明します★     |
 └────────────────────────────────┘
  科目を一度に集計するところを勉強していきます。
  エクセルで科目集計をする場合、Excel2003以前を使っていた方なら簡単に
  集計ボタンで集計ができたのにExcel2007から集計ボタンが使いにくくなった
  と感じた方もいらっしゃると思います。
  それはエクセルにテーブルという考え方が入ったからだと思います。
  色つきのパターンに変えてしまうとテーブルに変わってしまうので、
  集計ボタンが使えなくなります。その時はデザインの範囲に変換をクリック
  しないといけませんが、テーブルになっていると新しいピポットテーブル
  が使えてまた便利だと思います。
  どちらにしても集計をするには集計した項目で並び替えてからでないと
  求めている結果がでません。
  (1)科目を並べるためにデータを作業シートにコピーしておく。
    元データを変更したくないためです。
  (2)作業データを科目で並び替えます。
  (3)並び変わった作業データを上(行の先頭)から見ていき変数keiを使って
    金額の合計を計算していきます。
    科目が変わると判断した時(次の行と今の行の科目を比べる)作業1
    シートに転記する。
  今回は3つの作業を別々のプロシージャ(プログラム)に書き3つをcallで
  呼び出す1つにプロシージャにしています。
  結果を出すには色々な方法がありますが自分が納得した部品を理解して自分の
  部品として活用していってください。
  
  Sub コピー()
'dataを作業シートへコピー
Dim i As Long
Dim j As Long
Dim lastRow As Long
lastRow = Worksheets("data").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("作業").Cells.Clear
For i = 1 To lastRow
For j = 1 To 2
Worksheets("作業").Cells(i, j) = Worksheets("data").Cells(i, j)
Next
Next
  End Sub
  
  Sub 並び替え()
Dim lastRow As Long
lastRow = Worksheets("作業").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("作業").Activate
Range(Cells(2, 1), Cells(10, 6)).Select
ActiveWorkbook.Worksheets("作業").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("作業").Sort.SortFields.Add Key:=Cells(2, 1), SortOn _
:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("作業").Sort
.SetRange Range(Cells(2, 1), Cells(lastRow, 2))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
  End Sub
  
  Sub 科目計算()
Dim i As Long
Dim j As Long
Dim kei As Long
Dim lastRow As Long
lastRow = Worksheets("作業").Cells(Rows.Count, 1).End(xlUp).Row
j = 2
kei = 0
Worksheets("作業1").Cells.Clear
Worksheets("作業1").Cells(1, 1) = "科目"
Worksheets("作業1").Cells(1, 2) = "金額"
For i = 2 To lastRow
kei = kei + Worksheets("作業").Cells(i, 2)
If Worksheets("作業").Cells(i, 1) <> Worksheets("作業").Cells(i + 1, 1) Then
Worksheets("作業1").Cells(j, 1) = Worksheets("作業").Cells(i, 1)
Worksheets("作業1").Cells(j, 2) = kei
j = j + 1
kei = 0
End If
Next
Worksheets("作業1").Select
  End Sub

  Sub 科目計算集まり()
Call コピー
Call 並び替え
Call 科目計算
  End Sub
  
  次回は集計した科目表を合計残高一覧表(収支一覧表)に転記するところを
  説明していきます。
  次回は幼稚園の経理システム(その4)を説明します
┌─┐
│3├───────────────────────────────┐
└┬┘★ 習うより慣れろ                      |
| 練習問題・実践をすることです ★     |
 └────────────────────────────────┘
  VBA実践のメルマガの永い読者はまた同じことかと思われるかもしれませんが
  基本は同じですのでそれを何度も少し変わった面から作ることが本当の
  力になってくるのです。
  わかったと思って訓練をしないと実践力がつきません。
  キャリアアップをめざして頑張ってください。
┌─┐
│4├───────────────────────────────┐
└┬┘★3月のVBA実践無料セミナーは 3月 1日(土) 9日(日) 22日(土)  |
|    10:00~12:00 テーマ:合理化・ムダをなくす |
| 具体的な活用方法の相談と説明・事例紹介 ★|
 └────────────────────────────────┘
┌─┐
│5├───────────────────────────────┐
└┬┘★ 3月のVBA実践有料セミナーは 3月 2日(日) 15日(土)  |
|    9:00~17:00 内容:VBA実践基礎       |
|    受講費用 ¥20,000(税抜・教材費込)     |
 └────────────────────────────────┘
┌─┐
│6├───────────────────────────────┐
└┬┘★ VBA実践塾の第1号「よくわかるVBA実践」CD版 |
| 発売中(価格5,000円)                |
| ご購入希望者はyahooショッピングにて販売中★          |
| http://store.shopping.yahoo.co.jp/vba/★            |
 └────────────────────────────────┘
┌─┐
│7├───────────────────────────────┐
└┬┘★ 現金主義会計ソフトCD版              |
| を発売しました(販売価格2,500円)         |
| ご購入希望者はamazonにて販売中)★            |
|http://www.amazon.co.jp/(現金主義会計ソフトで検索してください)|
|簿記は難しい。しかし税務申告はこの簿記の考え方を採用しています。|
|この会計は、最小の努力で税務申告も可能な決算書が完成できるように|
|工夫しました。指示に従って初歩の簿記知識もマスターしましょう。 |
 └────────────────────────────────┘

 ──────────────────────────────────
  次のOdysseyのサイトに漫画でVBAを説明していますので参考にしてください
  http://vbae.odyssey-com.co.jp/column/

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 □■セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309
スポンサーサイト

よくわかるVBAセミナー実践塾(VBA部品の紹介と勉強)

 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
    よくわかるVBA実践塾(VBA部品の紹介と勉強)
   (エクセルの初心者対象・プログラムの大革命)
http://vba.asai.net
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓VBAをマスターして仕事を早くして給料をあげよう。儲かる会社にしよう☆
┗╋━━━━━━━━━━━━━━━━━━━━━━━━━━……………
 ┃    VBA実践塾は、VBAはプログラムを作るのではない
部品を修正して使うという考え方で実施しております。
 ☆。.:*:・’゜  ─ 部品の公開メルマガ No65─
  ……………━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
   よくわかるエクセルVBA実践(部品を使うための知識)
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
┌─┐
│1├───────────────────────────────┐
└┬┘★前回は幼稚園の経理システム(その1)を説明しました★    |
 └────────────────────────────────┘
前回は幼稚園の経理システム(その1)を説明しました。
完成までの大きな流れを説明しました。
その後質問に来られました。
計算結果がうまくいかないということでした。
原因はセルにシート名をつけずにシート間の計算をされていたことでした。
コピー先=コピー元の代入の意味とセル・変数・テキスト・リストボックス
等が使われることはだいたい理解されていると思いますが、シート名をつけ
ることが理屈でわかっていても実践が少ないと間違ってしまいます。
数をこなすことが大事だと思います。
それとエクセルの気持ちになって書いてみることも必要だと思います。
セル=セルの場合エクセルはどのシートのセルか迷ってしまいます。
エクセルの立場にたてばシート名をつけてあげることの必要性がわかります。
使う人の立場にたってシステムを作っていきましょう。

もう一つ気づいたことは、
変数=セル1+セル2+セル3+セル4の計算はエクセルの計算式と同じで
わかりやすいですが、VBA実践塾は繰り返しを使うために
変数=変数+セル1
変数=変数+セル2
変数=変数+セル3
変数=変数+セル4
の形式を使っています。
これも理解しにくいひとつだと思いますが繰り返しを使うために是非マスター
してください。

また作っていくと絵本の入力等のテーマがでてきます。
これこそVBA実践塾の目指すシステムの発展です。
  質問のある方またご意見のある方は自由にメールをしてください。
 
┌─┐
│2├───────────────────────────────┐
└┬┘★今回は幼稚園の経理システム(その2)を説明します★     |
 └────────────────────────────────┘
  (2)VBA実践塾の基本・変数・条件・繰り返しを理解してもらう。
  をもう少し勉強してもらいました。
  科目と金額の表から指定した科目の合計を計算する方法です。
  それによって繰り返しのなかでif文をどのように使うかを理解してもらいました。
  
  Sub kantan4()
Dim i As Long
Dim goukei As Long
For i = 2 To 7
If Cells(i, 1) = "b" Then
goukei = goukei + Worksheets("出納帳").Cells(i, 2)
End If
Next
MsgBox goukei
  End Sub
  
  この例題がマスターされると科目が異なったとき毎回プログラムを修正
  しまければいけないことに気づかれました。
  一方的に次の課題を提供するより自分から課題要望を考えた方が力が
  つきやすいと思います。
  練習問題をただこなすだけでなくいつも疑問・改良点を考えることが力がつき
  会社の合理化につながります。
  エクセルならシートのセルに入力しますが外部からエクセルシートに入力
  したいとき
  inputboxという便利なコマンド(部品)があります。
  変数=inputbox("メッセージ")
  これで変数にデータが代入されますのでそに変数を先ほどのプログラムの固定した
  科目"b"の変わりに書きます。
  Sub kantan5()
Dim i As Long
Dim goukei As Long
Dim kamoku As String
kamoku = InputBox("科目を入力してください")
For i = 2 To 7
If Cells(i, 1) = kamoku Then
goukei = goukei + Cells(i, 2)
End If
Next
MsgBox goukei
  End Sub
  次はボタン一つですべての科目を集計するという作業にはいります。
  (3)出納帳をデータベースとして使えるように訓練してもらう
  本番の出納帳を作成(すでにエクセルで使っている表)を使って科目の集計
  の練習をしてもらい、プログラムの基礎(変数・条件・繰り返し)に慣れてもらいました。
  最後の行は固定でなく
  部品集(データベース)の先頭最後の行を取り出す
  http://vba.asai.net/buhind.html
  からlastrow = Worksheets("仕訳伝票").Cells(Rows.Count, 9).End(xlUp).Row
  を使ってシート名と最後の行を判断したい列番号に変更して使います。
  今回わかったことは、私が理解されているだろうと思って、次へ進んで
  行ってもその場では理解されていても一人になると理解していなかった
  ことがわかりましたので、生徒の立場になって理解度を見ながら次に進まないと
  いけないと再認識いたしました。
  次は科目を一度に集計するところを説明していきます。
  次回は幼稚園の経理システム(その3)を説明します
┌─┐
│3├───────────────────────────────┐
└┬┘★ 習うより慣れろ                      |
| 練習問題・実践をすることです ★     |
 └────────────────────────────────┘
  VBA実践のメルマガの永い読者はまた同じことかと思われるかもしれませんが
  基本は同じですのでそれを何度も少し変わった面から作ることが本当の
  力になってくるのです。
  わかったと思って訓練をしないと実践力がつきません。
  キャリアアップをめざして頑張ってください。
┌─┐
│4├───────────────────────────────┐
└┬┘★2月のVBA実践無料セミナーは 2月22日(土)           |
| 3月のVBA実践無料セミナーは 3月 1日(土) 9日(日) 22日(土) |
|    10:00~12:00 テーマ:合理化・ムダをなくす |
| 具体的な活用方法の相談と説明・事例紹介 ★|
 └────────────────────────────────┘
┌─┐
│5├───────────────────────────────┐
└┬┘★ 3月のVBA実践有料セミナーは 3月 2日(日) 15日(土)  |
|    9:00~17:00 内容:VBA実践基礎       |
|    受講費用 ¥20,000(税抜・教材費込)     |
 └────────────────────────────────┘
┌─┐
│6├───────────────────────────────┐
└┬┘★ VBA実践塾の第1号「よくわかるVBA実践」CD版 |
| 発売中(価格5,000円)                |
| ご購入希望者はamazonにて販売中)★            |
| http://www.amazon.co.jp/(よくわかるVBAで検索してください)★ |
 └────────────────────────────────┘
┌─┐
│7├───────────────────────────────┐
└┬┘★ 現金主義会計ソフトCD版              |
| を発売しました(販売価格2,500円)         |
| ご購入希望者はamazonにて販売中)★            |
|http://www.amazon.co.jp/(現金主義会計ソフトで検索してください)|
|簿記は難しい。しかし税務申告はこの簿記の考え方を採用しています。|
|この会計は、最小の努力で税務申告も可能な決算書が完成できるように|
|工夫しました。指示に従って初歩の簿記知識もマスターしましょう。 |
 └────────────────────────────────┘

 ──────────────────────────────────
  次のOdysseyのサイトに漫画でVBAを説明していますので参考にしてください
  http://vbae.odyssey-com.co.jp/column/

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 □■セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309

よくわかるVBA実践塾(VBA部品の紹介と勉強)

 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
    よくわかるVBA実践塾(VBA部品の紹介と勉強)
   (エクセルの初心者対象・プログラムの大革命)
http://vba.asai.net
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓VBAをマスターして仕事を早くして給料をあげよう。儲かる会社にしよう☆
┗╋━━━━━━━━━━━━━━━━━━━━━━━━━━……………
 ┃    VBA実践塾は、VBAはプログラムを作るのではない
部品を修正して使うという考え方で実施しております。
 ☆。.:*:・’゜  ─ 部品の公開メルマガ No64─
  ……………━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
   よくわかるエクセルVBA実践(部品を使うための知識)
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
┌─┐
│1├───────────────────────────────┐
└┬┘★前回は日付の変換関数を説明しました★            |
 └────────────────────────────────┘
前回は日付の変換関数を説明しました。
エクセルの日付の処理がいかに上手に作られているかということとVBAで
それ相当のものを作ることが難しいことがおわかりになられたと思います。
VBA実践塾の考え方はエクセルを最大限使おうという発想です。
エクセルのできないところをVBAで作ろうという考え方です。

今回からは初めての生徒さんが幼稚園の経理システムを作り上げるまでの
過程を説明していきます。
前任者が作ったエクセルのシステムを引き継ぐというところから始まりました。
VLOOKUP関数とかシートの連結とかで多数のシートで出来上がっている
システムだったと思います。
作った人はどんどん改良していき使いやすいものになっていったと思います。
ここで問題点が2つあります。
1つは作った人が使いやすいのと会社が求めているものとが同じかどうかの
確認です。
それは経営者あるいは上司が判断しないといけないと思います。
2つ目は作った担当者が辞めるか転勤した場合です。
複雑になったものほど引き継いだ人が困っているケースが多いです。

VBA実践塾では単純・標準化を目指しています。
そしてシステムは企業の合理化・新しい戦略に役立つものでないといけません。
そのために日々進化していかなければいけません。
それらの点から幼稚園の経理システムを説明していきます。
  質問のある方またご意見のある方は自由にメールをしてください。
 
┌─┐
│2├───────────────────────────────┐
└┬┘★今回は幼稚園の経理システム(その1)を説明します★     |
 └────────────────────────────────┘
  今の問題点・何をされたいのかを聞きました。
  現金出納帳をエクセルで入力してその科目ごとの集計を収支報告書に転記
  する作業をボタン一つでしたい
  今それに時間がかかっているということでした。
  他にも要望がいろいろあるみたいでしたが、サーツと聞き流しました。
  目的を絞ることが大事です。
  
  幼稚園の経理システムが完成するまでの流れを私の頭の中で作りました。
  (1)VBAとは何かを理解することと使い方をマスターしてもらう。
    マクロの記録を説明して手順がプログラムであることを理解し、
    自動でプログラムができることに感動してもらう。
    その感動を忘れないことが大事であると説明しました。
    実際プログラムを書くとつまることが多いですそのとき感動を思い出して
    目標を達成するという強い意志を持ってもらうためです。
    またマクロの記録で作られた標準モジュールを見てVBAの使い方と
    プログラムの書き方をマスターしてもらうこと。
    ボタンとプログラム(プロシージャ)をリンクしボタンを押せば
    仕事をするというオブジェクトプログラムをつかんでもらう。
  (2)VBA実践塾の基本・変数・条件・繰り返しを理解してもらう。
    簡単な現金出納帳を作って足し算をエクセルの関数とcellsを使った
    プログラムと比べながら変数を理解してもらう。
    =A1+A2とcells(1,2)=cells(1,1)+cells(2,1)
    エクセルのセルが変数だと理解したところで合計の変数kotae
    を定義する方法を学び変数kotaeを使った数行の足し算を理解してもらう。
    dim kotae as long
    kotae=kotae+cells(1,1)
    kotae=kotae+cells(2,1)
    さまざまな代入を理解してもらう。
    コピー先シートのセル=コピー元シートのセル(変数)
    行番号にiという変数を使い
    for i=1 to 3
      kotae=kotae+cells(i,1)
    next
    これが一番VBA実践塾の急所(データベースを使う)ことを強調し
    練習を通じて必ず理解してもらう。
    その中に条件文を使いデータベースの抽出になっていくところを
    練習でつかんでいってもらう
  (3)出納帳をデータベースとして使えるように訓練してもらう
  (4)科目集計をマスターする
  (5)科目に転記する
  (6)収支表に転記する
  (3)の理解が一番のポイントになります。
  (3)が理解できれば(4)以降に進んでいきます。
  最後は実践課題に取り組んでいき完成になり後は自分で様々なシステム
  が作れるようになるという工程です。
  5回でマスターし完成するという目標で達成しました。
  次回は幼稚園の経理システム(その2)を説明します

┌─┐
│3├───────────────────────────────┐
└┬┘★ 習うより慣れろ                      |
| 練習問題・実践をすることです ★     |
 └────────────────────────────────┘
  VBA実践のメルマガの永い読者はまた同じことかと思われるかもしれませんが
  基本は同じですのでそれを何度も少し変わった面から作ることが本当の
  力になってくるのです。
  わかったと思って訓練をしないと実践力がつきません。
  キャリアアップをめざして頑張ってください。
┌─┐
│4├───────────────────────────────┐
└┬┘★2月のVBA実践無料セミナーは 2月22日(土)           |
| 3月のVBA実践無料セミナーは 3月 1日(土) 9日(日) 22日(土) |
|    10:00~12:00 テーマ:合理化・ムダをなくす |
| 具体的な活用方法の相談と説明・事例紹介 ★|
 └────────────────────────────────┘
┌─┐
│5├───────────────────────────────┐
└┬┘★ 2月のVBA実践有料セミナーは 2月 15日(土)      |
|  3月のVBA実践有料セミナーは 3月 2日(日) 15日(土)    |
|    9:00~17:00 内容:VBA実践基礎       |
|    受講費用 ¥20,000(税抜・教材費込)     |
 └────────────────────────────────┘
┌─┐
│6├───────────────────────────────┐
└┬┘★ VBA実践塾の第1号「よくわかるVBA実践」CD版 |
| 発売中(価格5,000円)                |
| ご購入希望者はamazonにて販売中)★            |
| http://www.amazon.co.jp/(よくわかるVBAで検索してください)★ |
 └────────────────────────────────┘
┌─┐
│7├───────────────────────────────┐
└┬┘★ 現金主義会計ソフトCD版              |
| を発売しました(販売価格2,500円)         |
| ご購入希望者はamazonにて販売中)★            |
|http://www.amazon.co.jp/(現金主義会計ソフトで検索してください)|
|簿記は難しい。しかし税務申告はこの簿記の考え方を採用しています。|
|この会計は、最小の努力で税務申告も可能な決算書が完成できるように|
|工夫しました。指示に従って初歩の簿記知識もマスターしましょう。 |
 └────────────────────────────────┘

 ──────────────────────────────────
  次のOdysseyのサイトに漫画でVBAを説明していますので参考にしてください
  http://vbae.odyssey-com.co.jp/column/

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 □■セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309

よくわかるVBA実践塾(VBA部品の紹介と勉強)講習

 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
    よくわかるVBA実践塾(VBA部品の紹介と勉強)
   (エクセルの初心者対象・プログラムの大革命)
http://vba.asai.net
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓VBAをマスターして仕事を早くして給料をあげよう。儲かる会社にしよう☆
┗╋━━━━━━━━━━━━━━━━━━━━━━━━━━……………
 ┃    VBA実践塾は、VBAはプログラムを作るのではない
部品を修正して使うという考え方で実施しております。
 ☆。.:*:・’゜  ─ 部品の公開メルマガ No63─
  ……………━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
   よくわかるエクセルVBA実践(部品を使うための知識)
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
┌─┐
│1├───────────────────────────────┐
└┬┘★前回はメイクショップの納品書にデータを           |
 |      転記するアプリケーションを説明しました★   |
 └────────────────────────────────┘
前回はメイクショップの納品書にデータを転記するアプリケーションを
説明しました。
今回は初めての生徒さんに変数を説明してi=i+1はわかった、cells(1,2)
もわかったところがcells(i,2)がわからないという質問を受けました。
何のために使うかということと、
for i=1 to 10
cells(i,2)
next
をわかりやすく説明したところでわかったと納得されました。
プログラムの基礎(変数・条件文・繰り返し)3つを説明した後生徒さんが
したい経理システムの教材を提供しながら勉強していったのですが、やはり
難しいという声を聞きます。
良く聞いてみると説明を聞きながら作っていると解るのだが家に帰って
自分でしてみるとわからないということでした。
今までの生徒さんを色々と考えてみて、わかったという人は以前プログラム
に挑戦して挫折した方が今回わかったと答えているような気がしました。
私も昔、アセンブラ、BASIC、C言語を勉強していたとき、わからなかった
ことを思い出しました。
ところがデータベースを勉強してからよくわかったことを思いだしました。
データベースを部品として考えたのがよかったと思います。
データベースの中身を考えないことです。
おそらく今回の生徒さんもプログラムを作らないといけないと思っているから
むずかしいのだと思います。
部品として使うのだという考えに立てばむずかしいという思いが消えると
思います。
結果を出すために部品を使う、その使い方は教材が提供してくれるので
訓練すれば必ず目的が達成できるという信念が大事だと思います。
また結果を報告していきます。
今回は科目の集計の表作成まで行きました。
  質問のある方またご意見のある方は自由にメールをしてください。
 
┌─┐
│2├───────────────────────────────┐
└┬┘★今回は日付の変換関数を説明します★             |
 └────────────────────────────────┘
  VBA実践塾のホームページのよくつかうプログラムを参考にしてください。
  http://vba.asai.net/shiduke.html
  エクセルの日付処理は非常によくできています。
  2/1とか2-1と入力すると2月1日に変わります。そこからautofill(自動で
  加算する機能)を使うと日付がうまくかわります。
  またCSV形式で取り込んだ日付も上手く処理してくれます。
  最初エクセルを使ったとき(25年ごろ前)はここまでの機能がなかった
  ように思えます。
  それをVBAで作るというお話ではありません。
  エクセルの機能を使いなさいという話と問合せ等の入力画面をつくるとき
  どうしても日付関数が使えない時があります。
  工夫すればできるかもわかりませんがそれをしている時間がもったいない
  時文字の関数を使うことです。
  例えば2014/01のように年月のみを入力して計算するために2014/1/1と
  2014/1/31が必要な場合2014/01の文字列に/01を足して日付型に変換する
  と便利な場合があります。
  初めに一般的な日付・文字変換を勉強してください。
  Sub 文字を日付に変換()
Dim hiduke As String
hiduke = "2014/01/10"
MsgBox CDate(hiduke)
End Sub
Sub 文字を日付に変換セル()
Cells(2, 2) = CDate(Cells(2, 1))
Cells(3, 2) = CDate(Cells(3, 1))
End Sub
Sub 日付を文字に変換()
Dim hiduke As String
hiduke = "2014/01/1"
MsgBox Format(hiduke, "yyyy/mm/dd")
End Sub
Sub 日付を文字に変換セル()
Cells(2, 3) = Format((Cells(2, 2)), "yyyy/mm/dd")
Cells(3, 3) = Format((Cells(3, 2)), "yyyy/mm/dd")
End Sub
  文字列を取り出すMID関数を勉強してくだい。
  
Sub 変換1()
Dim henkan As String
Dim henkan1 As String
Dim henkan2 As String
henkan = "2014/1/10"
henkan1 = "0" & Mid(henkan, 6, 4)
henkan2 = Mid(henkan, 1, 5) & henkan1
MsgBox henkan2
End Sub
  
  長さ取り出すLEN関数を勉強してくだい。
  Sub 長さ()
Dim i As Long
Dim nagasa As Long
For i = 2 To 5
nagasa = Len(Cells(i, 1))
Cells(i, 4) = nagasa
Next
End Sub
  
  複雑になってきますが1月から9月の場合0をつける
  また1日から9日の場合0をつける処理を勉強してください。
  作り方は色々あります。
  結果がでたらいいのです。
  Sub 年月変換()
Dim i As Long
Dim henkan As String
Dim henkan1 As String
Dim henkan2 As String
For i = 2 To 3
henkan = Cells(i, 1)
If Mid(henkan, 7, 1) = "/" And Len(henkan) = 9 Then
henkan1 = "0" & Mid(henkan, 6, 4)
henkan2 = "'" & Mid(henkan, 1, 5) & henkan1
Else
henkan2 = "'" & henkan
End If
Cells(i, 2) = henkan2
Next
End Sub
Sub 年月変換1()
Dim i As Long
Dim henkan As String
Dim henkan1 As String
Dim nagasa As Long
For i = 2 To 5
henkan = Cells(i, 1)
nagasa = Len(Cells(i, 1))
Select Case nagasa
Case 8
henkan1 = "'" & Mid(henkan, 1, 5) & "0" & Mid(henkan, 6, 2) & "0" & Mid(henkan, 8, 1)
Case 9
henkan1 = "'" & Mid(henkan, 1, 5) & "0" & Mid(henkan, 6, 4)
Case 10
henkan1 = "'" & henkan
End Select
Cells(i, 3) = henkan1
Next
End Sub

  最後に関数Functionにした例です。
  Sub 年月変換2()
Dim i As Long
For i = 2 To 5
Cells(i, 5) = hiduke(Cells(i, 1))
Next
End Sub
Function hiduke(henkan As String)
Dim nagasa As Long
nagasa = Len(henkan)
Select Case nagasa
Case 8
hiduke = "'" & Mid(henkan, 1, 5) & "0" & Mid(henkan, 6, 2) & "0" & Mid(henkan, 8, 1)
Case 9
hiduke = "'" & Mid(henkan, 1, 5) & "0" & Mid(henkan, 6, 4)
Case 10
hiduke = "'" & henkan
End Select
End Function
  
  少しむずかしくなったかもわかりませんが次回はわかりやすい事例で
  説明していきます。
  次回からは幼稚園の経理システムを作っていく過程を説明します。

┌─┐
│3├───────────────────────────────┐
└┬┘★ 習うより慣れろ                      |
| 練習問題・実践をすることです ★     |
 └────────────────────────────────┘
  VBA実践のメルマガの永い読者はまた同じことかと思われるかもしれませんが
  基本は同じですのでそれを何度も少し変わった面から作ることが本当の
  力になってくるのです。
  わかったと思って訓練をしないと実践力がつきません。
  キャリアアップをめざして頑張ってください。
┌─┐
│4├───────────────────────────────┐
└┬┘★2月のVBA実践無料セミナーは 2月 9日(日) 22日(土)      |
| 3月のVBA実践無料セミナーは 3月 1日(土) 9日(日) 22日(土) |
|    10:00~12:00 テーマ:合理化・ムダをなくす |
| 具体的な活用方法の相談と説明・事例紹介 ★|
 └────────────────────────────────┘
┌─┐
│5├───────────────────────────────┐
└┬┘★ 2月のVBA実践有料セミナーは 2月 15日(土)      |
|  3月のVBA実践有料セミナーは 3月 2日(日) 15日(土)    |
|    9:00~17:00 内容:VBA実践基礎       |
|    受講費用 ¥20,000(税抜・教材費込)     |
 └────────────────────────────────┘
┌─┐
│6├───────────────────────────────┐
└┬┘★ VBA実践塾の第1号「よくわかるVBA実践」CD版 |
| 発売中(価格5,000円)                |
| ご購入希望者はamazonにて販売中)★            |
| http://www.amazon.co.jp/(よくわかるVBAで検索してください)★ |
 └────────────────────────────────┘
┌─┐
│7├───────────────────────────────┐
└┬┘★ 現金主義会計ソフトCD版              |
| を発売しました(販売価格2,500円)         |
| ご購入希望者はamazonにて販売中)★            |
|http://www.amazon.co.jp/(現金主義会計ソフトで検索してください)|
|簿記は難しい。しかし税務申告はこの簿記の考え方を採用しています。|
|この会計は、最小の努力で税務申告も可能な決算書が完成できるように|
|工夫しました。指示に従って初歩の簿記知識もマスターしましょう。 |
 └────────────────────────────────┘

 ──────────────────────────────────
  次のOdysseyのサイトに漫画でVBAを説明していますので参考にしてください
  http://vbae.odyssey-com.co.jp/column/

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 □■セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309

よくわかるVBA実践塾(VBA部品の紹介と勉強)VBA講習

 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
    よくわかるVBA実践塾(VBA部品の紹介と勉強)
   (エクセルの初心者対象・プログラムの大革命)
http://vba.asai.net
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┏┓VBAをマスターして仕事を早くして給料をあげよう。儲かる会社にしよう☆
┗╋━━━━━━━━━━━━━━━━━━━━━━━━━━……………
 ┃    VBA実践塾は、VBAはプログラムを作るのではない
部品を修正して使うという考え方で実施しております。
 ☆。.:*:・’゜  ─ 部品の公開メルマガ No62─
  ……………━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┿
   よくわかるエクセルVBA実践(部品を使うための知識)
 ┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━◇◆┿
┌─┐
│1├───────────────────────────────┐
└┬┘★前回はメイクショップの納品書の基本を使って作成する     |
 |      アプリケーションを説明しました★       |
 └────────────────────────────────┘
前回はメイクショップの納品書の基本を使って作成するアプリケーション
を説明しました。
大阪のある卸売市場が活性化するためにショッピングモールを立ち上げ
事務の合理化をはかるためにVBAでシステムを組んでいます。
お客様が1つの店だけで購入するのでなく、市場のあらゆる店の商品を
レジで1本で買うことができるシステムです。
商品の梱包の中に各店の商品が入ってくる場合もあり、また送料無料の場合
もあります。それらを考慮して各店の1か月間の配送料を計算するシステムです。
それを作りながら昔データベースを使って屋台村の各店の電気代等の配賦を
したことを思い出しました。
その当時私はデータベースのコマンドが使えたので結果が目に見えたので
システムが作りやすかったです。
昔はこのようにシミュレーションできる環境がなかったので頭の中で考え
紙に書いて設計してからプログラムを作るために専門家でないとシステムが
作れなかったように思います。
今回はエクセルを使いながら割り算をしたりしたため仕事の流れがわかり
やすかったです。
これがエクセルVBAをつかう大きな特徴です。
マクロの記録では変数・条件文・繰り返しができないために、プログラム
の基礎を勉強してVBAで取り組みます。
今回もエクセルの初心者の方がこられ3月までに幼稚園の会計システムを
作る目標で頑張られています。
必ず目標達成できます。
また報告いたします。
  質問のある方またご意見のある方は自由にメールをしてください。
 
┌─┐
│2├───────────────────────────────┐
└┬┘★今回はメイクショップの納品書にデータを★          |
| 転記するアプリケーションを説明します   ★    |
 └────────────────────────────────┘
  枚数を数えると同じ条件(注文者か売上金額が異なれば別伝票と考える)
  で注文者と売上金額の変数を使って1つ前と今のデータを比較して転記
  していきます。
  ページが変われば行の変数Jに55を加算して次のページの準備をします。
  先頭のページは送り主等を印刷しますので条件文と変数sentouを使って
  処理していきます。
  テストが不十分なためまだまだエラーがでると思いますがエラー(問題点)
  がでてから直したらよいと思います。
  もし委託された業者であれば信用をなくしますので、VBAはユーザーが
  自分で作って自分で使うシステムであることを自覚しておいてください。
  Sub データ作成()
Dim i As Long
Dim j As Long
Dim k As Long
Dim l As Long
Dim lastRow As Long
Dim lastRow1 As Long
Dim kensu As Long
Dim namae As String
Dim uriage As Long
Dim mcode As Long
Dim sentou As Long
'枚数を数える(注文者か売上金額が異なれば別伝票と考える)
namae = Worksheets("作業").Cells(2, 2)
uriage = Worksheets("作業").Cells(2, 3)
kensu = 1
lastRow = Worksheets("作業").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lastRow
If namae <> Worksheets("作業").Cells(i, 2) Or uriage <> Worksheets("作業").Cells(i, 3) Then
kensu = kensu + 1
End If
namae = Worksheets("作業").Cells(i, 2)
uriage = Worksheets("作業").Cells(i, 3)
Next
'枚数分の空白納品書を作成する
Worksheets("納品書").Cells.Clear
Worksheets("納品書基本").Select
Worksheets("納品書基本").Rows("1:55").Select
Selection.Copy
Sheets("納品書").Select
For i = 1 To kensu
Cells(1 + (i - 1) * 55, 1).Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
ActiveSheet.Paste
Next
'納品書にデータを転記
namae = Worksheets("作業").Cells(2, 2)
uriage = Worksheets("作業").Cells(2, 3)
j = 0
l = 0
sentou = 1
For i = 2 To lastRow
If namae <> Worksheets("作業").Cells(i, 2) Or uriage <> Worksheets("作業").Cells(i, 3) Then
j = j + 55
sentou = 1
l = 0
End If

'同じ納品書の間の転記
If sentou = 1 Then
Worksheets("納品書").Cells(2 + j, 5) = Worksheets("作業").Cells(i, 1)
mcode = Worksheets("作業").Cells(i, 8)
lastRow1 = Worksheets("店").Cells(Rows.Count, 1).End(xlUp).Row
'店
For k = 2 To lastRow1
If mcode = Worksheets("店").Cells(k, 1) Then
Worksheets("納品書").Cells(6 + j, 4) = "544-0031"
Worksheets("納品書").Cells(7 + j, 4) = Worksheets("店").Cells(k, 3)
Worksheets("納品書").Cells(8 + j, 4) = Worksheets("店").Cells(k, 2)
Worksheets("納品書").Cells(9 + j, 4) = Worksheets("店").Cells(k, 4)
Worksheets("納品書").Cells(10 + j, 4) = "VBAネット市場『VBA実践塾』"
End If
Next
'送り先
Worksheets("納品書").Cells(4 + j, 2) = Worksheets("作業").Cells(i, 10)
Worksheets("納品書").Cells(5 + j, 2) = Worksheets("作業").Cells(i, 11)
Worksheets("納品書").Cells(6 + j, 2) = Worksheets("作業").Cells(i, 2) & "様"
Worksheets("納品書").Cells(7 + j, 2) = Worksheets("作業").Cells(i, 12)
sentou = 0
End If
'明細
Worksheets("納品書").Cells(15 + j + l, 2) = Worksheets("作業").Cells(i, 6)
Worksheets("納品書").Cells(15 + j + l, 3) = Worksheets("作業").Cells(i, 7)
Worksheets("納品書").Cells(15 + j + l, 4) = Worksheets("作業").Cells(i, 9)
Worksheets("納品書").Cells(15 + j + l, 5) = Worksheets("作業").Cells(i, 7) * Worksheets("作業").Cells(i, 9)
l = l + 1
mcode = Worksheets("作業").Cells(i, 8)
namae = Worksheets("作業").Cells(i, 2)
uriage = Worksheets("作業").Cells(i, 3)
Next
End Sub

  次回は日付の変換関数を説明します。

┌─┐
│3├───────────────────────────────┐
└┬┘★ 習うより慣れろ                      |
| 練習問題・実践をすることです ★     |
 └────────────────────────────────┘
  VBA実践のメルマガの永い読者はまた同じことかと思われるかもしれませんが
  基本は同じですのでそれを何度も少し変わった面から作ることが本当の
  力になってくるのです。
  わかったと思って訓練をしないと実践力がつきません。
  キャリアアップをめざして頑張ってください。
┌─┐
│4├───────────────────────────────┐
└┬┘★2月のVBA実践無料セミナーは 2月 9日(日) 22日(土)      |
|    10:00~12:00 テーマ:合理化・ムダをなくす |
| 具体的な活用方法の相談と説明・事例紹介 ★|
 └────────────────────────────────┘
┌─┐
│5├───────────────────────────────┐
└┬┘★ 2月のVBA実践有料セミナーは 2月 2日(日) 15日(土)  |
|    9:00~17:00 内容:VBA実践基礎       |
|    受講費用 ¥20,000(税抜・教材費込)     |
 └────────────────────────────────┘
┌─┐
│6├───────────────────────────────┐
└┬┘★ VBA実践塾の第1号「よくわかるVBA実践」CD版 |
| 発売中(価格5,000円)                |
| ご購入希望者はamazonにて販売中)★            |
| http://www.amazon.co.jp/(よくわかるVBAで検索してください)★ |
 └────────────────────────────────┘
┌─┐
│7├───────────────────────────────┐
└┬┘★ 現金主義会計ソフトCD版              |
| を発売しました(販売価格2,500円)         |
| ご購入希望者はamazonにて販売中)★            |
|http://www.amazon.co.jp/(現金主義会計ソフトで検索してください)|
|簿記は難しい。しかし税務申告はこの簿記の考え方を採用しています。|
|この会計は、最小の努力で税務申告も可能な決算書が完成できるように|
|工夫しました。指示に従って初歩の簿記知識もマスターしましょう。 |
 └────────────────────────────────┘

 ──────────────────────────────────
  次のOdysseyのサイトに漫画でVBAを説明していますので参考にしてください
  http://vbae.odyssey-com.co.jp/column/

 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 □■セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309
プロフィール

浅井良一

Author:浅井良一
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。