環境
Excel2003
Win7 64bit
--------------
Const C as Currency = 50000000
Sub Test()
Dim A as Currency
Dim B as Currency
B = 6823695200
A = B \ C '←ここでオーバーフロー
End Sub
---------------
「A = B \ C」
↑この式はオーバーフロー時、ウォッチ式上では、
型: Integer と表示されますが、これも不思議。
また、「A = B \ C」を、
A = CCur(B) \ CCur(C)
としても、オーバーフロー。
それと、
「Const C as Currency = 50000000」を、
「Const C = 50000000」 としても、同様にオーバーフロー。
Currency型は、
-922,337,203,685,477.5808~922,337,203,685,477.5807
のはず。
このオーバーフローは、一体なぜ?
No.3ベストアンサー
- 回答日時:
>どのようにして行えば良いのでしょうね。
No2です。
先のの回答に書いたんですけどねぇ。
A = Int(B / C)
通常の余算演算子 / を使用します。
小数点以下を切り捨てる場合は Int() 関数で切り捨てます。
この回答への補足
http://detail.chiebukuro.yahoo.co.jp/qa/question …
こちらに方法がありました。
こちらで解決するか、とりあえずやってみたいと思います。
ダメそうなら、また戻ってきます(笑)
度々、ありがとうございます。
>先のの回答に書いたんですけどねぇ。
>A = Int(B / C)
気付かず、すみませんでした。
追加でお聞きしたいのですが、
-------
Dim D as Long
D = B Mod C '←オーバーフロー
-------
こちらについては、どう考えればよろしいでしょうか。
また宜しければ、教えて下さい。
No.4
- 回答日時:
>D = B Mod C '←オーバーフロー
>こちらについては、どう考えればよろしいでしょうか。
Mod演算子も\演算子と同様に除数と被除数はどちらも整数型であることが必要です。
BとCの型と数値が最初の質問の通りなら整数型に自動変換されるタイミングでオーバーフローが発生します。
\演算子とMod演算子は整数型専用の演算子と思ってください。
A = Int(B / C)
D = B - (C * A)
またしても、ありがとうございます。
>A = Int(B / C)
初歩的な質問なのですが、
B/C の計算結果(つまり、その値)が、Integer型(整数型)ではなく、
それより上(つまり、Long以上)であった場合にも、
このコードは使えますでしょうか。
使えない場合には、使えるものを教えて頂けると非常に有り難いです。
何度もすみません。宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAの指示の内容 昨日こちらでご教示頂いたのですが初心者な為、一つ一つの指示が何をやっているのかわ 2 2022/10/25 18:08
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Visual Basic(VBA) VBA処理追加 こちらでご教示頂いたのですが回答完了させてしまいましたのでこちらからまた質問させてく 2 2022/10/27 09:57
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) モードレスでユーザーフォームが開け(表示)ません。 4 2022/09/09 11:05
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Visual Basic(VBA) VBA This Workbookモジュールを別ファイルにコピーする方法 1 2022/09/14 01:51
- Excel(エクセル) このコードに追記事項の仕方を教えて下さい。 以下のコード内容に出てくる。セルH3が空白の場合、エラー 4 2023/08/03 00:22
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Excel(エクセル) エクセル VBA For Next 繰り返しの書き方を教えてください 6 2022/09/01 14:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
VB6のAdressOfをVB.NETに変換し...
-
3のつく数字と3の倍数のみを表...
-
魚眼レンズの画像処理
-
MATLABのMATファイル をC言語...
-
WindowsAPIで画像フォーマット...
-
10進数をBCDに変換する方法
-
MATLAB/simulinkでのD/A変換の仕方
-
非省略形式のIPv6アドレスを省...
-
なぜ通信には16進数文字列が使...
-
VC++2005で、CString型に16進...
-
エクセルVBAの自動変換機能?
-
ユニコード文字の変換について
-
php
-
シフトJISのCSVファイルをUFT-8...
-
VB.NETからJavaに変換するツー...
-
vb.netの型変換について
-
PHPで、日本語からアルファベッ...
-
マンセル⇔XYZ,RGB変換式或いは...
-
単純【エクセルVBA】なぜオーバ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報