スポンサーサイト

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

初めてのよくわかるやさしいエクセルVBA実践4回目

初めてのよくわかるやさしいエクセルVBA実践4回目http://vba.asai.net
前回はいきなり下記のプログラムを紹介しました。
そしてこれがわかれば十分だともお話ししました。
Sub keisan100()
 Dim i As Long
  Dim kotae As Long
  For i = 1 To 100
    kotae = kotae + Cells(i, 3)
  Next
  MsgBox kotae
End Sub
初めての人はこれでやはり難しいじゃないかとおもわれると思いますが
英語を考えてください。
初めは何もわからず
This is a pen.
と口に出し紙に書いているうちにあたりまえになってもっと難しい文章
を読み書きできるようになったのではないかと思います。
日本語はもっと難しいでしょう。
プログラムも難しいとおもわず慣れることが大事です。
英語の場合は文法を知らなくても使うことができますがプログラムは
文法のような規則を理解しないといけません。
ここがエクセルの初心者がすぐに入れないポイントだと思います。
変数iの使い方の基本は
エクセルのセルのような入れ物がありそれを使う時
Dim i As Long
を書くことからはじまります。
そのときエクセルで数字を入力したとき右詰になったように数字ですよ
と教える方法がLongです。
変数kotaeの方が理解しやすいのでkotaeを考えていきます。
エクセルで合計計算をするとき答えのセルに=SUM(A1:A5)のように計算式
を入力しますね。プログラムではkotae=kotae+1とすると始めkotaeが0で
あればkotaeは2になります。
kotae=kotae+セル とした場合セルの内容が1から5まで変わったとき
kotae=1+2+3+4+5=15になります。
この意味がわからなくても練習をしていくとだんだんわかるようになります。
個人差がありますので練習をしなくてもわかる人がいますので他人と比べない
ことが大事だと思います。
次はセルの座標値が変わるということを理解してください。
それが繰り返しを使うことです。
Cells(i, 3)のiが1から100迄くりかえされるということは1行目から100行目
まで行が移動する、データベース用語ではレコードが移動するといいます。
kotae = kotae + Cells(i, 3)は1行目から100行目までの合計がkotaeに
入ってくることを理解してください。
もしCells(i, 3)のかわりにiであれば
kotae = kotae + iのkotaeは1から100までの合計5050になることがわかれば
充分理解されています。
そして最後にMsgBox kotaeでkotaeの内容が表示されます。
次回は例題を入れながら違う角度から変数と繰り返しを勉強していきます。
特に条件文をどのような時どのように使うかがポイントになります。
VBAが難しいと思っている方が多いですし私のブログを見てもやはり難しいと思われる人が多いとおもいます。
ここで少し辛口な意見を述べますが、これからの社会はますます付加価値のある企業・個人が勝ち組になる時代です。VBAでなくても難しくても挑戦する人しか勝ち組になれないのではないかと思います。
もしVBAに興味をもてば頑張ってください。
初心者の情報ばかり流していますので少し実践的な情報も流していきます。
初心者の人は無視して基礎を固めてください。
小計シートの取り方です。

tukikensu.png

流れは
'集計データの取り出し
'月で並べる
'合計シートに月で合計をとる
各項目のプログラムはhttp://vba.asai.net
の部品集を使ってください。
ポイントは次回説明します。

Sub 集計()
Dim lastrow As Long
Dim i As Long
Dim j As Long
Dim k As Long
Dim kei As Long
Dim goukei As Long
Worksheets("作業").Cells.Clear
Worksheets("作業").Cells(1, 1) = "月"
Worksheets("作業").Cells(1, 2) = "件数"
Worksheets("合計").Cells.Clear
Worksheets("合計").Cells(1, 1) = "月"
Worksheets("合計").Cells(1, 2) = "件数"
'集計データの取り出し
lastrow = Worksheets("データ").Cells(Rows.Count, 1).End(xlUp).Row
j = 2
For i = 2 To lastrow
Worksheets("作業").Cells(j, 1) = Worksheets("データ").Cells(i, 1)
Worksheets("作業").Cells(j, 2) = 1
j = j + 1
Next
'月で並べる
Worksheets("作業").Activate
lastrow = Worksheets("作業").Cells(Rows.Count, 1).End(xlUp).Row
Range(Cells(2, 1), Cells(lastrow, 2)).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
'合計シートに月で合計をとる
k = 2
kei = 0
goukei = 0
For i = 2 To j - 1
kei = kei + Worksheets("作業").Cells(i, 2)
If Worksheets("作業").Cells(i, 1) <> Worksheets("作業").Cells(i + 1, 1) Then
Worksheets("合計").Cells(k, 1) = Worksheets("作業").Cells(i, 1)
Worksheets("合計").Cells(k, 2) = kei
goukei = goukei + kei
k = k + 1
kei = 0
End If
Next
Worksheets("合計").Cells(k, 1) = "合計"
Worksheets("合計").Cells(k, 2) = goukei
Worksheets("合計").Select
End Sub
セミナー場所・お問い合わせ先
大阪市阿倍野区阿倍野筋3-12-2-111
ナガセキャリアプラザ アベノ校
VBA実践塾 塾長 浅井良一
http://vba.asai.net
ryoichi@asai.net
電話0120-555-309
スポンサーサイト
プロフィール

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

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

この人とブロともになる

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