[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『閏年判定プログラムでLongを用いるわけ』(hiro)
VBAのデータ型の選択について質問です。
書籍で学習中、「閏年判定プログラム」なるものがありました。
そのとき変数宣言でLongが使われておりました。
その書籍で代表的なデータ型として扱われていたもののうち、
整数を扱うものはIntegerとLong。
しかしIntegerでは範囲が狭いので、より広いLongを扱った。
そういう理解で合っているんでしょうか。
よろしくお願いします。
< 使用 Excel:Excel2010、使用 OS:Windows8 >
どんなコードかわかりませんが、
Integerだとエラーになると思います。
(マナ) 2018/05/05(土) 12:40
(マナ) 2018/05/05(土) 12:44
エラーにはならないと思いますけど 使うのは年とMODだけですしね
その書籍の筆者がJavaかC等の他言語をやっているなら、 その言語のInt型と範囲が同じになるlong型を使っただけではないかと
https://msdn.microsoft.com/ja-jp/library/s3f49ktz.aspx https://yusuke.blog/2008/10/06/1022 http://marycore.jp/prog/c-lang/data-type-ranges-and-bit-byte-sizes/
・・・他言語だとInt型とLong型の大きさが同じになることもあるんですね VBAだと関係ないようですが (2u) 2018/05/05(土) 19:50
質問とは直接は関係ないですが・・・。
4の倍数とか数学的なものをまったく考えないで、エクセルやウィンドウズの 力を借りた閏年判定サンプルです。 これは4年分ループする、Functionに値を渡すためにInteger型変数を使って ますが、Functionに値を渡さないで、また、ループしないのなら、変数は 不要です。
Sub test() Dim i As Integer For i = Year(Date) To Year(Date) + 3 MsgBox i & ":" & uruu(i) Next i End Sub
Function uruu(ByVal tosi As Integer) As Boolean Dim matu As Date matu = DateSerial(tosi, 2, 29) If Month(matu) <> 2 Then uruu = False Else uruu = True End If End Function (カリーニン) 2018/05/05(土) 21:57
まだ初学者ゆえ、すべての情報を理解するには時間がかかりそうです。
ひとまずは、Longでもよいと納得しておきます。
また振り返りに来ます。
(hiro) 2018/05/06(日) 08:57
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.