実行時エラー6 オーバーフローしましたとでます。

簡単な解決方法を教えてください。
以下の解決をネットで見つけましたが、難しくて分かりません。



エクセルのマクロについてでですが・・・
実行時エラー6 オーバーフローしましたとでます;
解決策を教えてください。。。

Sub ぬはー()

Dim a(15) As Double

Dim b As Integer

Dim c(13) As Double

Dim d(13) As Double

Dim e(26) As Double

Dim sum(13) As Double

Dim sume2(13) As Double

Dim 平均(13) As Double

Dim 分散(13) As Double

Dim 標準偏差(13) As Double

Dim data_num As Single

data_num = Range(Cells(145, 1), Cells(145, 1).End(xlDown)).Count

・・・省略・・・

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/03/06 09:21:56
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:SALINGER No.4

回答回数3454ベストアンサー獲得回数969

ポイント20pt

Excel2003以下とExcel2007の大きな違いは扱える行数で、65,536から1,048,576に拡張されています。

上記の最後の式は、Cells(145,1)が空白の場合最終行までがカウントされることになります。

そのため、オーバーフローしたということはその行数の変更によるものである可能性が高いと思います。

ただし、上記のコードではdata_numはSingle型なので仮に1048576を代入したとしても問題はありません。

「私の内容」の方のコードを提示していただかないと原因の特定はできないと思います。

id:RX7FD3S

ありがとうございます。

上記式は、無視しておいてください。このような解決策があるようですが、こういう解決策だと分かりませんという例示でしたので。

2009/03/04 22:31:02

その他の回答4件)

id:taknt No.1

回答回数13539ベストアンサー獲得回数1198

ポイント20pt

Dim data_num As Single

で オーバーフローするならば

Dim data_num As Double

として 型の精度を あげてみたらいいでしょう。


変数のサイズを指定できますが、そのサイズを 超えるデータをセットしようとすると

オーバーフローとなっちゃうので、その場合は、入れる値が 間違っていないか確認します。

値が間違っていれば 正しい値を取得するように変えるしかないです。

値が正しいならば、設定する変数の型が 間違っていることになります。

これを 変えるしかないです。

id:RX7FD3S

ありがとうございます。

そのやり方が分かりません。

2009/03/04 22:10:17
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント20pt

どの行で実行時エラーが出るのですか?


data_num = Range(Cells(145, 1), Cells(145, 1).End(xlDown)).Count

この行は Count しているだけですし、data_num は Single 型なのでオーバーフローするとは思えないのですが。

id:RX7FD3S

上のSub ぬはー()・・は、インターネットの解決方法ですが、私の内容と違います。

エクセル2002から2007に最近バージョンアップしたら、エクセルのファイルをダブルクリックして立ち上げると、「実行時エラー6 オーバーフローしました」と出て困っています。

2009/03/04 22:13:17
id:pahoo No.3

回答回数5960ベストアンサー獲得回数633

ポイント20pt

どのようなマクロの、どの部分でエラーが出ているのか示していただかないと、アドバイスのしようがありません。

ごめんなさい。ポイントは不要で結構です。

id:RX7FD3S

普通に入力したエクセルのワークシートを立ち上げたら、急にそのようなメッセージが出ました。

マクロは一切、使用していません。

エクセル2002から2007に最近バージョンアップしてから、このようなメッセージが出ました。

2009/03/04 22:27:29
id:SALINGER No.4

回答回数3454ベストアンサー獲得回数969ここでベストアンサー

ポイント20pt

Excel2003以下とExcel2007の大きな違いは扱える行数で、65,536から1,048,576に拡張されています。

上記の最後の式は、Cells(145,1)が空白の場合最終行までがカウントされることになります。

そのため、オーバーフローしたということはその行数の変更によるものである可能性が高いと思います。

ただし、上記のコードではdata_numはSingle型なので仮に1048576を代入したとしても問題はありません。

「私の内容」の方のコードを提示していただかないと原因の特定はできないと思います。

id:RX7FD3S

ありがとうございます。

上記式は、無視しておいてください。このような解決策があるようですが、こういう解決策だと分かりませんという例示でしたので。

2009/03/04 22:31:02
id:SALINGER No.5

回答回数3454ベストアンサー獲得回数969

ポイント20pt

Excelをアップグレードしてエラーが出る原因の一つに、組み込まれているアドインが2007に対応していないことがあります。

Officeボタン→Excelのオプション→アドイン→設定で、エラーの原因らしきアドイン(よくわからない時は全て)のチェックを外してみてください。


それでも駄目な場合は

C:\Program Files\Microsoft Office\Office12\XLSTART

C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Excel\XLSTART

にファイルがあれば削除してみてください。

id:RX7FD3S

ありがとうございます。

試してみます。今、オフィス2007の修復をしているところです。

ワークシートではなく、エクセルのプログラムを立ち上げたときに、同じメッセージが出たので・・

2009/03/04 22:57:49

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません