【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