VBAを通して プログラム言語の基本構造を学ぶ 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野
もっとも簡単なプログラム Sub myprogram1() Msgbox “Hello. I love you.” End Sub
もっとも簡単なプログラム Sub myprogram1() Msgbox “Hello. I love you.” End Sub プログラム名 メッセージボックスに書き出す機能
変数の宣言 Sub myprogram2() Dim x As Integer x=18 Msgbox x + 1988 End Sub
変数の宣言 Sub yeartrans1() ‘ ‘ 平成を西暦に直すプログラム Dim x As Integer x=18 Msgbox “平成” & x & “ 年は西暦” & x + 1988 End Sub
変数の宣言 Sub yeartrans1() ‘ ‘ 平成を西暦に直すプログラム Dim x As Integer x=18 Msgbox “平成” & x & “ 年は西暦” & x + 1988 End Sub コメント文 変数 x を導入。整数値であることを宣言 複数の要素をメッセージボックスに繋げて表示
データの入力 Sub yeartrans2() ‘ ‘ 平成を西暦に直すプログラム Dim x As Integer Dim y As Integer x= InputBox(“平成の年度を入力しなさい”) y = x + 1988 Msgbox “平成”& x & “年は西暦” & y & ”年です” End Sub
データの入力 Sub yeartrans2() ‘ ‘ 平成を西暦に直すプログラム Dim x As Integer Dim y As Integer x= InputBox(“平成の年度を入力しなさい”) y = x + 1988 Msgbox “平成”& x & “年は西暦” & y & ”年です” End Sub ユーザが入力したものをxとする
If 文を用いたプログラム Sub japanyear1() ‘ 西暦に和年号に直すプログラム Dim x As Integer x= InputBox(“生まれ年を西暦で入力しなさい”) If x > 1988 Then Msgbox “平成” & x-1988 & ”年です” ElseIf x> 1925 Then Msgbox “昭和” & x-1925 & “年です” ElseIf x > 1910 Then Msgbox “大正” & x -1910 &”年です” Else Msgbox “明治のお生まれ、敬老のお祝いを申し上げます” End If End Sub
演習問題1 次のようなプログラムを作成しなさい InputBoxにテストの点数を入力させる 秀、優、良、可、不可の判定をMsgboxに答える 不可の場合は、「再試験は来月です」というメッセージを同時に与える。
エクセル表からの入出力 Sub yeartrans3() ‘ ‘ エクセルの表で平成を西暦に直すプログラム Dim x As Integer x= Cells(1,1) Cells(1,2)= x+1988 End Sub セルA1の内容 セルB1に書く
繰り返し制御 Sub yeartrans4() ‘ エクセルの表で平成を西暦に直すプログラム Dim x As Integer Dim row As Integer For row = 1 to 20 x= Cells(row,1) Cells(row ,2)= x+1988 Next row End Sub
繰り返し制御 Sub yeartrans5() ‘ エクセルの表で平成を西暦に直すプログラム Dim x As Integer Dim row As Integer row = 1 While Cells(row, 1) > 0 x= Cells(row,1) Cells(row ,2)= x + 1988 row = row +1 Wend End Sub
演習問題 2 エクセルの表で、A列に書かれた西暦の年号を和暦に直してB列に書くプログラムを書く 和暦は昭和もしくは平成 演習問題 2 エクセルの表で、A列に書かれた西暦の年号を和暦に直してB列に書くプログラムを書く 和暦は昭和もしくは平成 昭和元年より前の場合は「入力ミス」と書く