rsinz’s diary

趣味コードや日記のブログです。文章をうまく書けるようになりたい。

プリミティブ変数型を拡張したい(Integer編)

VBAのプリミティブ型(IntegerとかStringとか)に.netっぽく書けるように、オリジナルの機能を付けたいと思い、コードを書きました。
 

GitHubからIntegerExをダウンロードして、VBEにインストールしてください。
vba/Class at master · rsinz/vba · GitHub


以下、クラスの機能です。

Property
Value: Get/Setプロパティ。デフォルトプロパティに設定しています。
Plus: 内部保持値に加算
Minus: 内部保持値に減算
ToInt: integer型にして返す
ToLong: long型にして返す
ToString: string型にして返す
IsNaturalNumber: 自然数か判定 (小数点やマイナス値、ゼロを許容しない)

 

Method
Plus1: インクリメント
Minus1: デクリメント
ARound: 数値の丸め込み
BinaryToDecimal: 2進数→10進数変換
DecimalToBinary: 10進数→2進数変換
HexToDecimal: 16進数→10進数変換
DecimalToHex: 10進数→16進数変換

 

使い方
一部の機能のサンプルです。

Sub testInt()

    Dim int_ As New IntegerEx

    int_ = 1

    int_.Plus = 2.1

    Debug.Print int_ ' 3.1

    Debug.Print int_.Plus1 ' 4.1

    Debug.Print int_.IsNaturalNumber ' False

End Sub

vbaを書いているとどうしても、int_ = int_ + 1を書かなきゃいけなくて煩わしく感じてしまいます。(C#の int_++ とか int_ += 1 が羨ましすぎますよね)
vbaでも出来るだけスタイリッシュに書きたいというのが今回の趣旨でした。

 

内容は以上です。
余談ですが、「Plus」の代わりに漢字で「十」を使ってみたりしましたが、ダサすぎたので辞めました。

次回はString型に挑戦したいと思います。