いつもお世話になっております。
現在、VBAの課題に取り組んでおり、行き詰まっています
Excel for 2016を使用しています
問題
・ユーザーフォームに入力した値が、セルに繁栄されない
試したこと
・.Cellを使用すると挿入されるます(btnOk_Click)が、なぜ継承を使うと挿入できないのか?が疑問です
稚拙な質問かも知れませんが、ご存知の方がいらっしゃれば、ご教授願いたいです
下記の画像で、Add transactionをクリックすると、画像2のシートに保存されるようにしたいのですが、クリックしても何も起こりません。
UserForm
1Private Sub btnAddtransaction_Click() 2Dim newTransaction As New transaction 3 4newTransaction.TransactionDate = Now() 5 6If (optCredit) Then 7newTransaction.transactionType = Credit 8End If 9If (optDebit) Then 10newTransaction.transactionType = Debit 11End If 12 13save newTransaction 14newTransaction.CryptCurrency = cmBoxCurrency.Value 15newTransaction.Quantity = txtboxQuantity.Value 16newTransaction.ExchangeRate = txtboxExchangerate.Value 17 18End Sub 19Public Sub save(transaction As transaction) 20Dim validator As New TransactionValidator 21If (validator.isValid(transaction)) Then 22Worksheets("TransactionHistory").Rows(2).Insert Shift:=xlDown 23 24Sheets("TransactionHistory").Range("A2") = transaction.TransactionDate 25 26If (transaction.transactionType = Credit) Then 27Sheets("TransactionHistory").Range("B2") = "Credit" 28Else 29Sheets("TransactionHistory").Range("B2") = "Debit" 30End If 31 32Sheets("TransactionHistory").Range("C2") = transaction.CryptCurrency 33Sheets("TransactionHistory").Range("D2") = transaction.Quantity 34Sheets("TransactionHistory").Range("E2") = transaction.ExchangeRate 35End If 36 37End Sub 38 39 40Private Sub btnOk_Click() 41MsgBox "Test2" 42Dim lastRow As Long 43With Worksheets("TransactionHistory") 44lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 45.Cells(lastRow, 1).Value = Me.txtboxQuantity 46.Cells(lastRow, 2).Value = Me.cmBoxCurrency 47.Cells(lastRow, 3).Value = Me.txtboxExchangerate 48End With 49Unload Me 50 51End Sub
Transaction
1Public CryptCurrency As String 2Public ExchangeRate As Double 3Public Quantity As Double 4Public TransactionDate As Date 5Public transactionType As transactionType 6 7Public Function tostring() As String 8tostring = CryptCurrency & " " & transcriptionType & " " & "quantity: " & Quantity & "rate: " & ExchangeRate 9End Function
TransactionValidator
1Public Function isValid(transaction As transaction) As Boolean 2 3If (transaction Is Nothing) Then 4isValid = False 5End If 6 7If (transaction.Quantity <= 0) Then 8isValid = False 9End IF 10If (transaction.CryptCurrency <= 0) Then 11isValid = False 12End If 13 14End Function
> クリックしても何も起こりません。
デバッグはされましたか?
回答2件
あなたの回答
tips
プレビュー