備忘録

気になったこと、調べたこと、わからなかったことなど..

【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を開いてメールを作成する、等。