Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


9874 / 13646 ツリー ←次へ | 前へ→

【25004】大きなデータの読み込みでエラー ダメ猫 05/5/17(火) 18:10 質問[未読]
【25005】Re:大きなデータの読み込みでエラー ichinose 05/5/17(火) 18:25 発言[未読]
【25007】すいません、勘違いの部分が有りました ダメ猫 05/5/17(火) 18:58 発言[未読]
【25009】Re:すいません、勘違いの部分が有りました ichinose 05/5/17(火) 19:52 発言[未読]
【25015】Re:大きなデータの読み込みでエラー m2m10 05/5/18(水) 7:33 質問[未読]
【25016】Re:大きなデータの読み込みでエラー ウッシ 05/5/18(水) 9:01 発言[未読]
【25018】Re:大きなデータの読み込みでエラー ダメ猫 05/5/18(水) 9:21 お礼[未読]

【25004】大きなデータの読み込みでエラー
質問  ダメ猫  - 05/5/17(火) 18:10 -

引用なし
パスワード
   こんにちわ。

今回、大きなデータをバイト型で読み込んで処理をしているのですが、
データが大きすぎで途中でエラーが出てしまいます。
480KBや3Mのデータを読み込みたいのですが、何か方法は無いでしょうか?

【25005】Re:大きなデータの読み込みでエラー
発言  ichinose  - 05/5/17(火) 18:25 -

引用なし
パスワード
   ▼ダメ猫 さん:
こんにちは。

>今回、大きなデータをバイト型で読み込んで処理をしているのですが、
>データが大きすぎで途中でエラーが出てしまいます。
>480KBや3Mのデータを読み込みたいのですが、何か方法は無いでしょうか?
データが大きすぎるなら、分割して読み込む というのが
すぐに考え付く手法ですよね?

どんなコードで読み込んでいるのかUPしてみて下さい。
そうすれば、「あっ、こういうコードだとそういう問題が起きる可能性が
あるんだ」とこの投稿を見ている方の参考にもなりますよね?

【25007】すいません、勘違いの部分が有りました
発言  ダメ猫  - 05/5/17(火) 18:58 -

引用なし
パスワード
   申し訳有りません。
データの読み込み部分ではなく、そのデータ量分の処理をしているところで落ちるようです。

編集する部分のみの抜き出しをして関数に渡せばエラーにはならないようです。

データをバイト配列に読み込んでそのバイト配列を他の関数に渡して処理していたのですが、その関数が何度も呼ばれる為にエラーになってしまうようです。
関数の定義は次のようになっています。

呼び出し
CreateData(byt_data, lng_Point)

受け取り
Public Function CreateData(byt_data() As Byte, lng_Point As Long) As Boolean

Function で定義すれば変数はアドレス渡しになり、メモリは使わないと思っていたのですが・・・・
それとも中の他の部分のせいでメモリを消費しすぎているのかもしれません。
ここの関数の呼び出しを飛ばすと正常に動きます

【25009】Re:すいません、勘違いの部分が有りました
発言  ichinose  - 05/5/17(火) 19:52 -

引用なし
パスワード
   ▼ダメ猫 さん:
>申し訳有りません。
>データの読み込み部分ではなく、そのデータ量分の処理をしているところで落ちるようです。
>
>編集する部分のみの抜き出しをして関数に渡せばエラーにはならないようです。
>
>データをバイト配列に読み込んでそのバイト配列を他の関数に渡して処理していたのですが、その関数が何度も呼ばれる為にエラーになってしまうようです。
>関数の定義は次のようになっています。
>
>呼び出し
>CreateData(byt_data, lng_Point)
>
>受け取り
>Public Function CreateData(byt_data() As Byte, lng_Point As Long) As Boolean

>ここの関数の呼び出しを飛ばすと正常に動きます
このご説明では何とも申し上げられませんが・・・。

>Function で定義すれば変数はアドレス渡しになり、メモリは使わないと思っていたのですが・・・
おっしゃる通りだと思いますが、
Public Function CreateData(byt_data() As Byte, lng_Point As Long) As Boolean
  createdata=true
end function

と簡単なコードにして実行してみたらどうでしょうか?
スタックには複雑なコードと同じような
パラメーターのアドレスは作成されると思います。
これでエラーにならないようなら中身に問題がある可能性もあるでしょうね!!

いずれにしても「これは、あれと同じでは?」と経験したことがあれば、
ピンとくるかもしれませんが、私にはこれだけの情報では
わかりません。

【25015】Re:大きなデータの読み込みでエラー
質問  m2m10  - 05/5/18(水) 7:33 -

引用なし
パスワード
   65536 行以上のテータはExcelは無理です。

 以上の場合はアクセス等のデータベースの処理になります。

 

【25016】Re:大きなデータの読み込みでエラー
発言  ウッシ  - 05/5/18(水) 9:01 -

引用なし
パスワード
   こんにちは

>データが大きすぎで途中でエラーが出てしまいます。
エラーの内容も書いた方がいいですよ。

【25018】Re:大きなデータの読み込みでエラー
お礼  ダメ猫  - 05/5/18(水) 9:21 -

引用なし
パスワード
   読み込んで出力する時に、1シートに対してのデータ量が多すぎたせいでのエラーでした、
出力部分をシートに分割でうまく動きました。

処理に時間がかかりすぎて、エラーの場所がなかなか特定できなかったので
苦労しましたが、皆さんのアドバイスで何とかなりました。
ありがとうございました。

9874 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free