【VBA】基本的な記述
久しぶりにVBAを触ったので、基本的なコードについてまとめておく。
変数の宣言
Dim (変数名) As (型)
セルの値の取得
2通りの方法がある。 例:B3の値を取得する場合
①Cells(3 , 2).Value
Cells(縦の行 , 横の行)みたいな感じ。
②Range("A1").Value
こちらは直感的な書き方。
CellsとRangeの使い分け
■Cellsでできること
・行と列を指定することができるため、変数を使うことができる
For i = 1 To 5 print Cells(<span style="color: #ff5252"><b>i</b></span>, 1).Value Next i
for文とかループ処理ではCellsが活躍しますね。
Rangeでも変数を使うことはできますが、実行速度がちょっと遅いらしい。
■Rangeでできること
・セルを範囲選択できる
例えば、A1からA5の複数のセルを選択するとき。
Range(A1:A5)
・名前をつけたセルを参照できる
①A1セルに名前をつけます。
Range("A1").Name = "合計"
②①で付けた名前を使って、セルを指定することができる。
Range("合計").Value
値が入っているセルの数を数える
例:A3からA10の中で値が入っているセルをカウントする
Dim cnt As Long cnt = WorksheetFunction.CountIf(Range("A3:A10"), "<>")
「"<>"」は「"<>" & ""」を省略したもの。
<>"" → not ""
という意味になる。
<>は比較演算子で、等しくない記号として使います。phpだと!=にあたります。
調べて知ったのですが、phpでも<>を使うことができるそう。!=しか知りませんでした。
https://www.php.net/manual/ja/language.operators.comparison.php
他ソフトとの連携
VBAはMicrosoftofficeに搭載されているプログラミング言語。 ということで、Excelだけでなく他のOfficeソフトと連携したりすることができる。 ExcelからOutlookを開いてメールを作成する、等。