先週の復習 2重ループを用いた、 表の記入と読み込み
For文 行番号を書くプログラム(A1~A10 に行番号) Sub gyou() Dim i As Integer For i = 1 to 10 cells(i, 1)=i Next i End sub
For文 列番号を書くプログラム(A1~J1に列番号) Sub retsu() Dim j As Integer For j = 1 to 10 cells(1, j)=j Next j End sub
2重ループ :For文を入れ子構造で使用 行番号を書くプログラム 10行, A~J列まで Sub gyouretsu() Dim i As Integer Dim j As Integer For i = 1 to 10 For j = 1 to 10 cells(i, j)=i Next j Next i End sub
2重ループ セルに自分の「行番号*列番号」を出力するプログラム Sub dual() Dim i As Integer Dim j As integer For i = 1 to 10 For j = 1 to 10 cells(i, j) = i * j Next j Next i End sub
合計点と平均点を求めるプログラム j i Sub heikin() Dim i As Integer Dim j As Integer x : 合計を計算するための変数 学生ことに合計を求めて合計点と平均点を計算する その後,次の学生の合計を計算するために変数xの値を初期化(0)に設定をする Sub heikin() Dim i As Integer Dim j As Integer Dim x As Integer For i = 1 to 5 x=0 For j = 1 to 2 x = x + cells( i, j ) Next j cells( i, j )=x cells( i, j+1 ) = x/2 Next i End Sub j 85 56 69 78 95 54 98 92 i
演習:個人の合計,平均 Sub kojin() Dim i As Integer 先週の演習問題 Dim j As Integer Dim x As Integer For i= 2 To 11 x= 0 For j = 2 To 4 x = x + Cells(i, j) Next j Cells(i, j) = x Cells(i, j + 1) = x / 3 Next i End Sub 先週の演習問題 Sheet2 の成績データ (10人分の国語,英語,数学) 注意:Sheet2を開いた状態 でプログラムを実行
情報基礎A 第13週プログラミング 実際のデータ処理での応用 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
売上データ処理 情報基礎Aのホームページから売上データをダウンロードして下さい データの概要 data18.xls http://www.dais.is.tohoku.ac.jp/~jinhee/jyoho.html 注意:ファイルダウンロード時にファイルを必ず「保存する」にして下さい.「開く」を選択するとInternet Explorer上で開くと編集を保存することは出来ません データの概要 47都道府県別の月間売上データ 平成18年1月~12月 商品の種類:10品目
これからのやること 平成18年の47都道府県別月間売上データ( 10商品)の処理 今日は年間売上数を計算 18年の都道府県別・商品ことの年間売上数,年間売上高,年間売上総利益などの処理 今日は年間売上数を計算 方法 指定するワークシートセルの参照 多重ループ 2次元データ 複数の異なるワークシートからなるデータ一括処理
ワークシートの参照 指定するワークシートセルの参照 Worksheets(“ワークシートの名前”).Cells(行, 列) ワークシート名が数値と文字列の組合せの場合 数値のところを変数として使用 Worksheets(“1 月”).Cells(4, 2) Worksheets( tsuki & “月” ).Cells(4, 2)
複数の異なるワークシートからなるデータの読込みと計算 1月~12月の商品Aの北海道の売上数 「1月」のシート から 「12月」のシートのCells(4, 2)の合計 商品1の北海道の年間売上数 Worksheets(“1月”).cells(4, 2) + Worksheets (“2月”).cells(4, 2) + ・・・ + Worksheets (“12月”).cells(4, 2)
ワークシート名の数値を変数として扱い 繰返し制御(For文)によりデータを読込む 商品1の北海道の年間売上数を求めてメッセジーボックスに出力するプログラム Sub hokkaido() Dim tsuki As Integer Dim goukei As Integer For tsuki = 1 to 12 goukei= goukei + Worksheets(tsuki & “月”) .cells(4, 2) Next tsuki msgbox goukei End sub
年間売上数:都道府県別,商品別,12ヶ月 47回 10回 12回 3月商品10の売上数 2月商品10の売上数 1月商品10の売上数 12月商品10の売上数 商品10 3月商品1の売上数 2月商品1の売上数 1月商品1の売上数 12月商品1の売上数 商品1 沖縄 47回 北海道 3月商品10の売上数 2月商品10の売上数 1月商品10の売上数 12月商品10の売上数 商品10 10回 商品1 1月商品1の売上数 2月商品1の売上数 3月商品1の売上数 12回 12月商品1の売上数
演習:シート「年間売上数」に18年の商品別, 都道府県別売上数を求めよ 演習:シート「年間売上数」に18年の商品別, 都道府県別売上数を求めよ Sub uriagesu() Dim i As Integer Dim j As Integer Dim tsuki As Integer Dim goukei As Integer For i = 4 To 50 '47都道府県 For j = 2 To 11 '10種類の商品 goukei = 0 For tsuki = 1 To 12 '12ヶ月 goukei = goukei + Worksheets(tsuki & "月").Cells(i, j) Next tsuki Worksheets("年間売上数").Cells(i, j) = goukei Next j Next i End Sub