VBAの復習をしてみた

・前提

VBAを最後に触ったのが半年以上前だったので、思い出すためにコードを書いてみる

VBAはさほど難しくなかった記憶があるが、初歩的なところからもう一度復習する

・1,セルに文字列を出力

文字列と数字計算の結合を行って出力する

Option Explict

Sub 関数名()

Range("出力先セル名").Value = 1*1 & "です。" '[ 1です。]と表示される

End Sub

・2,セルの内容を別セルに転記して平均点も表示

Option Explicit

Sub 関数名()

Range("転記先セル").Value = Range("転記元セル").Value ’セルの転記
Range("出力先").Value = Range("出力元").Value / 母集団の数 '平均を出力


End Sub

・3,if文の文法を確認

まだ、迷うところは一つもない、意外に記憶に残っている

以下では60点以上で合格、それ未満で不合格を出力するマクロ

Option Explicit

Sub 関数名()

if Range("評価対象セル").Value >= 60 Then
Range("出力セル").Value = "合格"
Elseif Range("評価対象セル").Value >= 60 Then   'ここは合格以外の評価なのでElseで条件式省略も可
Range("出力セル").Value = "不合格"
End if

End Sub

※コードテストの途中で処理を止めたいときは以下の画像のようにウィンドウの左部分をクリックするとF5実行の際そこで止まる

・4,上記平均点の出力をグループ別に出力

※文法確認の本筋と関係ないのでグループ数=2として以下で試験

Option Explicit

Sub 関数名()

Dim sum_group1, sum_group2 '合計点の変数
Dim ctr_group1, ctr_group2 'グループ内要素数


sum_group1 = 0
sum_group2 = 0
ctr_group1 = 0
ctr_group2 = 0

'ここから下は合計点を足して出力するだけで3までの知識で表現できるので割愛

End Sub

5,for文を復習する

文法部分のみを確認する

Dim i ’変数宣言

For i =初期値 To 終了値
    繰り返したい処理
Next

※変数を定義する場合、RangeよりもCells(row,column)の方がわかりやすい

※上記終了値をマジックナンバーにしないためにENDプロパティを使用することもあり、以下構文

dim x

x=Range("セル番号").End(xlDown) '上記例でいえば14

6,シートの指定

別シートからorへの操作について以下のコードを使用

Sheets("シート名")

'使用例: Sheets("シート名").Range("セル番号").Value = sum

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です