【Excel VBA】よく使うVBAコード集1

私がよく使うコードをまとめました。

スポンサーリンク

1.最終行取得

繰り返し処理をするときに多用する最終行取得コード。シートの最終行から上に向かってCtrl+

cells(Rows.Count,1).End(xlUp)

Rows.Countは、シートの最終行のことを言います。Excel2003なら65,536 Excel2007以降なら1,048,576です。

Rows.Countの次の「1」は1列目を意味します。つまりA列です。

End(xlUp)は、Ctrl+↑を意味します。

2.条件分岐、多肢条件分岐(If,ElseIf,select case)

一番簡単な条件分岐

If 条件 Then
    条件が真の場合の処理
Else
    条件が偽の場合の処理
End If

一つの条件だけの分岐の書き方です。他にも条件(多肢条件)があった場合はどうしたらいいのかを次に書きます。

’多肢条件分岐1

If 条件 Then
    条件が真の場合の処理 A
ElseIf 条件②
    条件②が真の場合の処理 B
Else
    全ての条件が偽の場合の処理 C
End If

上から順番に処理をするため、条件①に当てはまればAの処理を行うが、条件①に当てはまらなければ条件②にあてはまるか確認し当てはまればBの処理を行う。どれにも当てはまらなければCの処理を行う。

’多肢条件分岐2

Select Case 変数・数式
    Case 条件①
         条件①が真の場合
    Case 条件②
         条件②が真の場合
    Case 条件③
         条件③が真の場合
End Select

個人的には条件が複雑になれば「Select Case」を使う方がすっきりして読みやすと思う。

3.形式を選択して貼り付け(PasteSpecial)

Range.PasteSpecial( Paste , Operation , SkipBlanks , Transpose )

具体的な書き方は、Range(“A1”).pasteSpecial(xlPasteValues) で値を貼り付けることができる。

Paste

xlPaseteAll全てを貼り付け
xlPaseteValues値を貼り付け

Operation

xlPasteSpecialOperationAdd加算
xlPasteSpecialOperationSubtract減算
xlPasteSpecialOperationMultiply乗算
xlPasteSpecialOperationDivide徐算

SkipBlank

True / False空白セルの貼り付けを対象としないかどうか
Trueは貼り付けしない。 規定値はFalse

Transpose

True / False行列を入れ替えるかどうか
Trueは入れ替えをする。 規定値はFalse

4.高速化(画面非更新)

マクロを実行中、画面が変化すると描写するのに時間がかかってしまうため、画面描写をしない(画面非更新)ことで高速化することができます。

Application.ScreenUpdating=False

FalseをTrueにすることで画面を更新に変更できます。マクロの実行が終わると自動的にTrueに変わります。

5.警告や確認の停止

Excel操作をしていると確認のためにポップアップが出てくることがあります。例えば、シートを削除する時に、確認メッセージがでてきます。それを表示させずに処理を進めるためのコードです。

Application.DisplayAlerts=False

6.計算モードの切り替え

'自動計算
Application.Calculation=xlCalculationAutomatic

’手動計算
Application.Calculation=xlCalculationManual

7.再計算させる

’最小限の再計算を行う
Application.calculate

'全ての関数の再計算を行う
Application.calculateFull

コメント

タイトルとURLをコピーしました