'変数宣言強制 Option Explicit Private m_Data() As Variant '償却率 '求めるボタン Private Sub CommandButton1_Click() If IsNumeric(Me.TextBox1.Text) = False Then GoTo Error Dim num1 As Integer '耐用年数 Dim num2 As Integer '経過年数 num1 = CInt(Me.TextBox1.Text) num2 = CInt(Me.TextBox7.Text) Dim cls As Class1 'クラス宣言 Set cls = New Class1 Call cls.GetData(num1, num2, m_Data) Set cls = Nothing 'クラス解放 Me.TextBox2.Text = Format$(m_Data(0), "0.000") Me.TextBox3.Text = Format$(m_Data(1), "0.000") Me.TextBox4.Text = Format$(m_Data(2), "0.000") Me.TextBox5.Text = Format$(m_Data(3), "0.000") Me.TextBox6.Text = Format$(m_Data(4), "0.000") 'フォーカスを戻す Me.TextBox1.SelStart = 0 Me.TextBox1.SelLength = Len(Me.TextBox1.Text) Me.TextBox1.SetFocus Exit Sub Error: Call MsgBox("数値を入力してください。", vbExclamation + vbOKOnly, "注意") 'フォーカスを戻す Me.TextBox1.SelStart = 0 Me.TextBox1.SelLength = Len(Me.TextBox1.Text) Me.TextBox1.SetFocus End Sub '閉じるボタン Private Sub CommandButton2_Click() Unload Me End Sub 'フォームが表示されたとき Private Sub UserForm_Activate() Me.TextBox1.SelStart = 0 Me.TextBox1.SelLength = Len(Me.TextBox1.Text) Me.TextBox1.SetFocus End Sub 'フォーム初期化 Private Sub UserForm_Initialize() '配列再定義 ReDim m_Data(4) As Variant End Sub 'フォームを閉じるとき Private Sub UserForm_Terminate() '配列開放 If IsEmpty(m_Data) Then Erase m_Data End Sub