Download presentation
Presentation is loading. Please wait.
1
電気・機械・情報概論 VBAプログラミング 第2回 2018年7月2日
2
パス、ブック操作 ファイルの場所のパス(変数にしておくと便利。) 課題:パスをメッセージボックス(MsgBox)で表示せよ。
ActiveWorkbook.path 課題:パスをメッセージボックス(MsgBox)で表示せよ。 ブックを新規作成 Workbooks.Add Workbooks.Add.Activate (作成したブックをアクティベート。) ブックの保存 ActiveWorkbook.SaveAs Filename := “D:\test.xlsx” ※C直下はダメ。xlsmもダメ。 ブック・ファイルを開く Workbooks.Open Filename:=“test.xlsx” ブックを閉じる ActiveWorkbook.Close 課題:ブックを新規作成、保存、開く、閉じるを行え。
3
シート操作 シートを選択 シートの追加 シートの名前の変更 シートのコピー(複製) 課題:以下のシートを持つブックを作成せよ。
Worksheets(“Sheet1”).Activate Worksheets(“Sheet1”).Select シートの追加 Worksheets.Add Worksheets.Add.Activate(作成したシートをアクティベート。) シートの名前の変更 ActiveSheet.Name="TEST“ シートのコピー(複製) ActiveSheet.Copy After:=ActiveSheet 課題:以下のシートを持つブックを作成せよ。 ワークブック名:“サンプル.xlsx” シート名:“サンプル1”、“サンプル2”、“サンプル3”
4
コピー、ペースト Range("A1").Copy Range("B1").Select ActiveSheet.Paste
課題:セルの値を任意のシート、セルにコピーせよ。 課題 シート1にグラフを作成 シート1をコピー(複製) データ(csvファイル)を読み込み 複製したシートにペースト
5
変数、演算子 定義 代入 通常一番初めにマクロ中で 使う変数を定義する。 課題 日付を表示せよ
Integer 整数(±32,768) Long 整数(±2,147,483,648) Single 小数 Double 小数(桁数が多い) String 文字列 Date 日付 Boolean ブール型(True/False) 定義 Dim name As String Dim num As Integer 代入 name = “名前” num = 1000 通常一番初めにマクロ中で 使う変数を定義する。 課題 日付を表示せよ 右記の計算を行い結果を メッセージボックスに表示 せよ。 演算子 意味 式の例 + 加算 i = ( i の値は20) - 減算 i = ( i の値は10) * 乗算 i = 5 * 4 ( i の値は20) / 除算 i = 15 / 5 ( i の値は3) \ 除算の商 i = 15 \ 2 ( i の値は7) Mod 除算の余り i = 15 Mod 2 ( i の値は1) ^ べき乗 i = 2 ^ 5 ( i の値は32)
6
配列 Dim fruit(2) As String fruit(0) = "りんご" fruit(1) = "みかん"
2次元配列 Dim fruit(2, 1) As String String型のfruitという名前の配列(箱)を3x2個定義 fruit(0, 0) = "りんご" fruit(0, 1) = 100 fruit(1, 0) = "みかん" fruit(1, 1) = 60 fruit(2, 0) = "梨" fruit(2, 1) = 150 課題 左記の配列をセルに書き出せ。 セルを読み出して配列に詰め、メッセージボックスに表示せよ。
7
If Then、 ElseIf Then, Else
If 80 < Score Then MsgBox “80より大きい” ElseIf 50 < Score Then MsgBox “50より大きい” Else MsgBox “50以下” End If 課題 入力値(Inputbox)に対して偶数と奇数を判別して表示せよ。 数字を2つ入力して大きい方を表示せよ。 演算子 意味 A > 0 And B >0 両方を満たした場合 A > 0 Or B > 0 いずれか1つを満たした場合 Not A = 0 条件式を満たさない場合 演算子 意味 = 等しい < より小さい <= 以下 > より大きい >= 以上 <> 等しくない
8
Select Case Select Case Score Case “A” MsgBox “優” Case “B” MsgBox “良”
テキストの条件式 Select Case Score Case “A” MsgBox “優” Case “B” MsgBox “良” Case Else MsgBox “可” End Select 条件分岐が多い場合、if文では複雑になってしまうので、Select Caseを使うと見やすくなる。 数字の条件式 Select Case Score Case Is > 80 MsgBox “80より大きい” Case Is > 50 MsgBox “50より大きい” Case Else MsgBox “50より小さい” End Select Select Case Score Case 81 To 100 MsgBox “80より大きい” Case 51 To 80 MsgBox “50より大きい” Case Else MsgBox “50より小さい” End Select
9
For Next 繰り返し処理を行う場合は、For Nextを使う。 For i = 3 to 10 ‘3から開始
For i = 1 To 10 Step 2 ‘2ずつ増加 For i = 10 To 1 Step -1 ‘1ずつ減る For i = 1 to 10 MsgBox i Next i Forループを抜けるときはは、Exit Forを使う。 課題: セルA1~A10に1~10を入れよ。 Dim i As Integer Dim Ans As Integer For i = 1 To 10 Ans = InputBox(“数字を入れて下さい。”) If Ans = 0 Then Exit For End If Next i
10
For Each Next Goto シートやワークブック、配列に対して一括で処理したいときに使用する。
課題:右のマクロをFor Nextで書き換えよ。 Dim st As Worksheet For Each st In Sheets MsgBox st.Name Next Goto Dim Ans As String For i = 1 To 10 Ans = InputBox(“数字を入れて下さい。”) If Ans = 0 Then Goto Fin End If Next i Fin: MsgBox(“0が入力されたので終了します。”) Gotoで飛ぶことが出来る。 多用すると分かりにくくなるので注意。
11
Do Loop ループの回数が決まっていないときはDo Loopを使用する。 ※無限ループの可能なので注意。Ctrl+Breakで強制終了。
前判断 後判断 満たすまで Do Until…Loop Do…Loop Until 満たす間 Do While…Loop Do…Loop While Dim Flag As Boolean Dim Ans As String Flag = 0 Do While Flag = 0 Ans = InputBox(“数字を入れて下さい。”) If Ans = 0 Then flag = 1 End If Loop
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.