エクセル関数を使うことはエクセルの機能を最大限に発揮することです。
エクセル関数をどんどん使っていきましょう。
但しVBA実践塾の基本IFとForですべて可能だという原則をマスターしてから使えば
鬼に金棒です。
Application.WorksheetFunction.エクセル関数(引数)
Application.WorksheetFunctionを使わずに直接式を代入する場合
式が間違って消去されてもVBAに書かれているため再度式を入力する必要がありません。
現実的にはエクセルのように直接範囲を変更できないし、ボタンを押さないと実行できないため意味がないと思います。
Sub sum計算式直接入力範囲固定()
Cells(2, 4) = "=Sum(B2:B8)"
End Sub
数字の文字列を作る場合は変数をつなぐだけです。B" & lastrow
Sub sum計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 4) = "=Sum(B2:B" & lastrow & ")"
End Sub
Sub sum計算式値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.Sum(Range("B2:B8"))
Cells(2, 4) = kotae
End Sub
Sub sum計算式値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.Sum(Range("B2:B" & lastrow))
Cells(2, 4) = kotae
End Sub
検索条件の文字列“の使い方に注意してください。
そこの文字列の作り方が面倒です。
Sub sumif検索c計算式直接入力範囲固定()
Cells(2, 4) = "=SUMIF(A2:B8," & """c""" & ",B2:B8)"
End Sub
Sub sumif検索c計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 4) = "=SUMIF(A2:B" & lastrow & "," & """c""" & ",B2:B" & lastrow & ")"
End Sub
Sub sumif検索c計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.sumif(Range("A2:B8"), "c", Range("B2:B8"))
Cells(2, 4) = kotae
End Sub
Sub sumif検索c計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.sumif(Range("A2:B" & lastrow), "c", Ran
ge("B2:B" & lastrow))
Cells(2, 4) = kotae
End Sub
Sub sumif検索計算式直接入力範囲固定()
Cells(2, 4) = "=SUMIF(A2:B8,D5,B2:B8)"
End Sub
Sub sumif検索計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 4) = "=SUMIF(A2:B" & lastrow & ",D5,B2:B" & lastrow & ")"
End Sub
Sub sumif検索計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.sumif(Range("A2:B8"), Range("D5"), Range("B2:B8"))
Cells(2, 4) = kotae
End Sub
Sub sumif検索計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.sumif(Range("A2:B" & lastrow), Range("D5"), Range("B2:B" & lastrow))
Cells(2, 4) = kotae
End Sub
Sub DSUM計算式直接入力範囲固定()
Cells(2, 2) = "=DSum(A6:B13,B6,A1:A2)"
End Sub
Sub DSUM計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 2) = "=DSUM(A6:B" & lastrow & ",B6,A1:A2)"
End Sub
Sub DSUM計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.DSum(Range("A6:B13"), Range("B6"), Range("A1:A2"))
Cells(2, 2) = kotae
End Sub
Sub DSUM計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.DSum(Range("A6:B" & lastrow), Range("B6"), Range("A1:A2"))
Cells(2, 2) = kotae
End Sub
Sub inputboxを使ったDSUM()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
Dim 区分 As String
区分 = InputBox("区分を入力してください")
Cells(2, 1) = 区分
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.DSum(Range("A6:B" & lastrow), Range("B6"), Range("A1:A2"))
Cells(2, 2) = kotae
End Sub
Sub sumifs検索値計算式直接入力範囲固定()
Cells(2, 5) = "=SUMIFS(C1:C8,A1:A8," & """a""" & ",B1:B8," & """大阪""" & ")"
End Sub
Sub sumifs検索値計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 5) = "=SUMIFS(C1:C" & lastrow & ",A1:A" & lastrow & "," & """a""" & ",B1:B" & lastrow & "," & """大阪""" & ")"
End Sub
Sub sumifs検索値計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.SumIfs(Range("C1:C8"), Range("A1:A8"), "a", Range("B1:B8"), "大阪")
Cells(2, 5) = kotae
End Sub
Sub sumifs検索値計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.SumIfs(Range("C1:C" & lastrow), Range("A1:A" & lastrow), "a", Range("B1:B" & lastrow), "大阪")
Cells(2, 5) = kotae
End Sub
Sub sumifs検索計算式直接入力範囲固定()
Cells(2, 5) = "=SUMIFS(C1:C8,A1:A8,E5,B1:B8,F5)"
End Sub
Sub sumifs検索計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 5) = "=SUMIFS(C1:C" & lastrow & ",A1:A" & lastrow & ",E5,B1:B" & lastrow & ",F5)"
End Sub
Sub sumifs検索計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.SumIfs(Range("C1:C8"), Range("A1:A8"), Range("E5"), Range("B1:B8"), Range("F5"))
Cells(2, 5) = kotae
End Sub
Sub sumifs検索計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.SumIfs(Range("C1:C" & lastrow), Range("A1:A" & lastrow), Range("E5"), Range("B1:B" & lastrow), Range("F5"))
Cells(2, 5) = kotae
End Sub
ここまで練習すれば文字と数字の結合にもなれてくると思います。
使っていないと忘れますので、自分の部品集として必要なところを使ってください。
Sub DSUM検索2件計算式直接入力範囲固定()
Cells(2, 5) = "=DSUM(A1:C8,C1,E4:F5)"
End Sub
Sub DSUM検索2件計算式直接入力範囲取得()
Dim i As Long
Dim lastrow As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
Cells(2, 5) = "=DSUM(A1:C" & lastrow & ",C1,E4:F5)"
End Sub
Sub DSUM検索2件計算値入力範囲固定()
Dim kotae As Long
kotae = Application.WorksheetFunction.DSum(Range("A1:C8"), Range("C1"), Range("E4:F5"))
Cells(2, 5) = kotae
End Sub
Sub DSUM検索2件計算値入力範囲取得()
Dim i As Long
Dim lastrow As Long
Dim kotae As Long
lastrow = Cells(Rows.Count, 1).End(xlUp).Row
kotae = Application.WorksheetFunction.DSum(Range("A1:C9" & lastrow), Range("C1"), Range("E4:F5"))
Cells(2, 5) = kotae
End Sub
金利計算に使うPMT(利率,期間,現在価値,将来価値,支払期日)関数を
Application.WorksheetFunctionを使って使います。
Private Sub cmdJikkou_Click()
Dim kingaku As Double
kingaku = Application.WorksheetFunction.Pmt(Val(txtRisoku.Text) / 1200, Val(txtKikan.Text) * 12, Val(txtKingaku.Text), 0)
txtHensai.Text = kingaku * -1
txtHensai.Text = Format(txtHensai.Text, "#,##0")
txtKingaku.Text = Format(txtKingaku.Text, "#,##0")
End Sub
見積システム 対象:基礎コース受講者3000円(税抜き)
販売システム 対象:基礎コース受講者3000円(税抜き)
財務システム 対象:基礎コース受講者3000円(税抜き)
給与システム 対象:基礎コース受講者3000円(税抜き)
原価システム 対象:基礎コース受講者3000円(税抜き)
介護システム 対象:基礎コース受講者3000円(税抜き)