徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野 情報基礎A 第12週プログラミング VBA Programming 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
セル セル番号:D2 VBAでは Range(“D2”) 又は Cells(2,4)
2次元配列 配列名(行のインデックス, 列のインデックス) 10行 3列の 配列 配列の名前 X 箱の数(10×3=30個) X(1,1) 配列名(行のインデックス, 列のインデックス) X(1,1) X(1,2) X(1,3) X(2,1) X(2,2) X(2,3) X(3,1) X(3,2) X(3,3) X(4,1) X(4,2) X(4,3) X(5,1) X(5,2) X(5,3) X(6,1) X(6,2) X(6,3) X(7,1) X(7,2) X(7,3) X(8,1) X(8,2) X(8,3) X(9,1) X(9,2) X(9,3) X(10,1) X(10,2) X(10,3) 10行 3列の 配列 配列の名前 X 箱の数(10×3=30個)
セルの参照方法 セルの参照方法 セルA1の値10に設定 Range Cells 以下はまったく同じ動作をする Sub Example_Range1() ActiveSheet.Range(“A1”).Value = 10 End Sub Sub Examlpe_Cells1() ActiveSheet.Cells(1, 1).Value = 10 End Sub
Rangeプロパティ Range(“セル”) Sub Example_Range2() ‘セルに値を入れる 任意の1つのセル,又はセルの範囲を参照するプロパティ 値の読み出し 設定などを行う Range(“セル”) Sub Example_Range2() ‘セルに値を入れる ActiveSheet.Range(“A1”).Value = 15 Range(“A2”).Value = 5 Range(“B1:B10”).Value=10 End Sub
Cells(RowIndex,ColInex) 単体セルを参照する セルの行 セルの列 Cells(RowIndex,ColInex) Sub Example_Cells2() ‘セルに値を入れる ActiveSheet. Cells(1,5).Value = 25 Cells(2,5).Value = 5 End Sub
Cellsプロパティ セルF1~F10に値100を書き込むプログラム Sub Example_Cells3() Dim kaisu As Integer For kaisu =1 to 10 Cells(kaisu, 6).Value = 100 Next kaisu End Sub
セルA1とA2の合計 Sub Example_Range3() Range(“A3”) = Range(“A1”)+ Range(“A2”) Rangeを使ってセルA1とA2の合計をA3に出力 Cellsを使ってセルA1とA2の合計をA4に出力 Sub Example_Range3() Range(“A3”) = Range(“A1”)+ Range(“A2”) End Sub Sub Example_Cells4() Cells(4,1) = Cells(1,1) + Cells(2,1) End Sub
セルB1からB10までの合計 Sub Example_Range4() Rangeを使ってB1からB10までの合計をC1に出力 Sub Example_Range4() Range(“C1”) = Range(“B1”) + Range(“B2”) + Range(“B3”) + Range(“B4”) + Range(“B5”) + Range(“B6”) + Range(“B7”) + Range(“B8”) + Range(“B9”) + Range(“B10”) End Sub
セルB1からB10までの合計 Sub Example_Cells5() Dim bango As Integer Cellを使ってB1からB10までの合計をC2に出力 Sub Example_Cells5() Dim bango As Integer Dim goukei As Integer goukei=0 For bango = 1 to 10 goukei = goukei + Cells(bango, 2) Next bango Cells(2,3)=goukei End Sub
アクティブセル Sub Example_Cells6() ActiveCell.Value = 200 ActiveCell.Previous.Value= ActiveCell.Value - 100 ActiveCell.Next.Value= ActiveCell.Value + 100 End Sub
合計をアクティブセルに表示 Sub Example_Cells7() Dim bango2 As Integer B1からB10までの合計を選択したセルに表示させる Sub Example_Cells7() Dim bango2 As Integer Dim goukei2 As Integer goukei2=0 For bango2 = 1 to 10 goukei2 = goukei2 + Cells(bango2, 6) Next bango2 ActiveCell.Value=goukei2 End Sub
演習 以前Excelで作成した成績を「Sheet2」へコピーして下さい 番号,国語,英語,数学の成績のみ
演習 国語の合計点と平均点を求めるプログラム 英語の合計点と平均点を求めるプログラム 数学の合計点と平均点を求めるプログラム kokugo() 英語の合計点と平均点を求めるプログラム eigo() 数学の合計点と平均点を求めるプログラム sugaku() 各科目の合計点と平均点を求めるプログラム kamoku()
国語の合計,平均 Sub kokugo() Dim banngo3 As Integer Dim kokugo As Integer For bango3 = 2 To 11 kokugo = kokugo + Cells(bango3, 2) Next bango3 Cells(bango3, 2) = kokugo Cells(bango3 + 1, 2) = kokugo / 10 End Sub
英語の合計,平均 Sub eigo() Dim banngo3 As Integer Dim eigo As Integer Dim x As Integer x = 0 For bango3 = 2 To 11 eigo = eigo + Cells(bango3, 3) x = x + 1 Next bango3 Cells(bango3, 3) = eigo Cells(bango3 + 1, 3) = eigo / x End Sub
数学の平均,合計 Sub sugaku() Dim banngo3 As Integer Dim sugaku As Integer Dim x As Integer x = 0 For bango3 = 2 To 11 sugaku = sugaku + Cells(bango3, 4) x = x + 1 Next bango3 Cells(bango3, 4) = sugaku Cells(bango3 + 1, 4) = sugaku / x End Sub
3科目(国語,英語,数学)の合計,平均 For bango3 = 2 To 11 Sub kamoku() kokugo = kokugo + Cells(bango3, 2) eigo = eigo + Cells(bango3, 3) sugaku = sugaku + Cells(bango3, 4) x = x + 1 Next bango3 Cells(bango3, 2) = kokugo Cells(bango3 + 1, 2) = kokugo / x Cells(bango3, 3) = eigo Cells(bango3 + 1, 3) = eigo / x Cells(bango3, 4) = sugaku Cells(bango3 + 1, 4) = sugaku / x End Sub Sub kamoku() Dim bango3 As Integer Dim kokugo As Integer Dim eigo As Integer Dim sugaku As Integer Dim x As Integer kokugo = 0 sigo = 0 sugakua = 0 x = 0