滝の音

滝の音

名こそ流れてなお聞こえけれ

数学プリントを自動生成する その12_1 分数 クラスモジュールをつくる

はじめに

分数の計算です。
今回はまずクラスモジュールをつくります。

分数の特徴

分数といえば。
1. 分子 2. 分母 3. 表記方法 4. 約分 5. 通分 このあたりが特徴でしょう。

クラスモジュールではこれらのうち1~4を実現させます。
5は関数のほうで

クラスモジュール

名前は「Fraction」にします。

Public Va As Integer    '分子
Public Vb As Integer    '分母

Private Sub Class_Initialize()
 Va = 0
 Vb = 1
End Sub

Property Get Str() As String
'--------------------
'Va/Vb
'--------------------

 If Va = 0 Then
    Str = "0"
 ElseIf Vb = 1 Then
    Str = Va
 Else
    Str = Va & "/" & Vb
 End If
End Property

Function Fit()
'---------------------
'約分
'---------------------
 Dim L As Integer   '最大公約数
 L = Application.WorksheetFunction.Gcd(Va, Vb)
 Va = Va / L
 Vb = Vb / L
End Function

分数の特徴とコードの対応は以下の通り。

特徴 コード
分子 Va
分母 Vb
表記方法 Str
約分 Fit

たとえば。
Fraction型の変数「num」について。

コード 意味
num.Va=3 分子が3
num.Vb=8 分母が8
num.Str ”3/8”
num.Fit 約分して分子と分母の数値を更新する

のようになります。

分子や分母の値を使いたいときはVaやVbを、文字列として扱いたいときはFormを使えるという、なかなか便利な仕様です。

まとめ

今回はクラスモジュールの説明に1回分の記事を割きました。
クラスモジュールも、プリント作成においてとても大事なツールです。
次回はこれを使って分数の計算を実装します。