寝て起きて寝て

プログラミングが出来ない情報系のブログ

VBAメモ書き

VBAでよく使うもののメモ

久々に書いたら書き方をもう忘れたのでメモ

基礎処理系

画面描画停止

プログラム実行中は描画処理を止めておくと処理速度が上がる

Application.ScreenUpdating = False '描画停止
Application.ScreenUpdating = True  '描画開始

列の最終行を取得

下記はC列の最後の行数を取得

Cells(Rows.Count, 3).End(xlUp).row()

動き:
Excel 97-2003形式のブックなら65,536
Excel 2007以降のブックなら1,048,576の行数が値(Long型)として入ってくる

FunctionとSubの違い(ざっくり)

  1. Function
    戻り値が返せる。
    マクロ実行関数として表示されない(単独で実行できない)
  2. Sub
    戻り値が返せない。
    マクロ実行関数として表示される(単独で実行できる)

書き方:

Sub Main()
ret = FunctionName(引数値)

'戻り値がない場合
Call NoRet
End Sub

Function FunctionName(引数名 As) As 戻り値の型
'戻り値は関数名に値を代入するように形式
FunctionName = 戻り値
End Function

Function NoRet()
End Function

演算子

算術演算子

演算子 説明
+ 足し算
- 引き算
* 掛け算
/ 割り算
|割り算の商
Mod 割り算の余り
^ べき乗

比較演算子

演算子 説明
< 小さい
<= 以下
> 大きい
>= 以上
= 等しい
<> 等しくない

論理演算子

演算子 説明
And 論理積
Or 論理和
Not 否定

処理構文

・For文

For 変数 = 初期値 To 終了値 [Step 増分]
    繰り返し回数までの処理
Next 変数

・If文

If 条件式 Then
    処理
ElseIf 条件式 Then
    処理
Else
    処理
End If