【VBA】コピペ集

・今いるセル

r = ActiveCell.Row
c = ActiveCell.Column

・指定ワークシートに値を代入

v1 = Worksheets("cell_sel").Cells(i, 5).Value

・引数渡し

Sub warikireCheck(ByVal num As Integer)

・非連続セルの選択

Union(Cells(r1 + 2, 1), Cells(r1 + 6, 1)).EntireRow.Select

・Findメソッド

Dim r As Range
Set r = Cells.Find("hoge")

・値貼り付け

Range("A1").PasteSpecial Paste:=xlPasteValues

・最終行の選択(Ctrl+↓)

Range("A1").End(xlDown).Select

・最終行の一個下座標

n = Cells(Rows.Count, "A").End(xlUp).Row + 1

・ショートカットキーの設定
Ctrl+qの設定。QのするとCtrl+Shift。hoge1と同じModuleに置くと動かない

Application.MacroOptions Macro:="hoge1", ShortcutKey:="q"

・いつもの

Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
*************************
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic

・全セルのクリア

ActiveSheet.UsedRange.Clear

・あいまい検索 Like関数

If app Like "*[apple,banana]*" Then
Cells(36 + i, 2).Value = "fruits"
Else
Cells(36 + i, 2).Value = "不明"
End If

・通常関数の使用

k = Application.WorksheetFunction.CountA(Range("A10:A1000"))

・エクセル関数の呼び出し

Pi = WorksheetFunction.Pi()

・セルに入力があったらコードを走らせる(複数セル、コード分岐)
 本コードはworksheetに記述し、Call先は標準モジュールで良い。

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("D5:D11,J5:J7")) Is Nothing Then
        Call test_hoge1
    ElseIf Not Intersect(Target, Range("D20:D21,J9:J10")) Is Nothing Then
        Call test_hoge2
    End If
End Sub