• ベストアンサー

これなんのエラーですか

すいません よろしくおねがいします 32列 行2182エクセルの表計算で集計(コピー 貼り付け 並び替え)は一部マクロにしているんですが 一行増やすことになり  マクロを解除して 一行増やしてからまたマクロにしょうとしましたら Microsoft visual Basicの窓が出て 以下のメッセージ 固定長文字型や静的変数のデーターの大きさは64KBを超えることができません  とでました どうゆうことでしょう マクロできません 

質問者が選んだベストアンサー

  • ベストアンサー
noname#152491
noname#152491
回答No.2

#タイトルはちゃんと内容を要約しないと他の人も助け舟を出しにくいですよ #そして内容ももう少し具体的に書きましょう マクロであればおそらくVBAですね。VBAであればエラー発生箇所が表示されたような気がします。 ※以下、計算はおそらく間違ってないと思います 変数は通常、動的配列などでない限りは、大抵固定長(サイズが変わらない)で確保されます。2進数において1バイトは8ビットと計算され、8ビットで符号(マイナスなどのこと)なしの場合、0~255、符号ありの場合、-2^n-1 ~ +2^n-1 - 1まで表現できるので、-128~+127まで表現できます。これが64, 000個並んで64KBなので、普通の量の計算であれば、まず問題が起きる確率は低いです。 エラー箇所が表示された時、エラーが該当する変数を示してきた時には、その変数に、Dim 変数名 As Integerや、As Singleなどとついていないか確認してください。Integerは整数型ですが、さらに大きな値を扱えるLongという長数型(小数を扱うのならDouble(倍精度実数型))もありますので、そちらを使用するとよいかもしれません。 どうしても果てしなく大きい数値を扱いたい、という時には、動的にメモリを確保して変数に充てる、という方法もないことはないですが、メモリ確保や動作についての十分な知識がなければデータを破壊しかねませんし、VBAよりかはC++などの話になりますので、まずはマクロや仕様設計の見直しをお勧めします。

tasukarima
質問者

お礼

いゃー助かりました 勉強不足ですね VBAもちょいかじりですので もっと勉強します 能力をはるかに超えますので 大変です ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • _backyarD
  • ベストアンサー率34% (199/580)
回答No.1

マクロを使って何をどうしようとしているのかが判らないと、あなたの疑問に完全に答えることはできません。とりあえず言えるのは、マクロの処理中で計算する際に、数値や文字データなどを入れる「入れ物」が溢れていっぱいだよ、というエラーが出ているということだけですね。 マクロを作った人に聞くのが一番です。

tasukarima
質問者

補足

32列掛ける218行の表に毎回数字を入力し終えたら (ある列を最後の行までコピーして隣の空白の列に貼り付けそれを並べ替えるというだけ)の それを毎回ボタンひとつやっているだけなんですよ マクロといわないんですかね 一部自動処理 一行増やしてあふれたためのエラーなんですか もう増やせないでしょうか 各セルには簡単な数式が入っています   

すると、全ての回答が全文表示されます。

関連するQ&A