• 締切済み

ExcelVBA 実行時に出るエラーの回避について

発生予想環境  OS環境  :全ウイントウズ、及びマックOS  バージョン :全エクセルバージョン  実行環境  :インテルベースマシンの         其の全てのPC 発生確認環境  OS環境   :Windows7         Macヨセミテ  バージョン :エクセル2016             2011             2010             2007  実行環境  :Pentium4         コア 2 DUO お世話になります。 さて、 一例としての 下記の例文のように ワークシートに データを書き足していく すると、 Book中の、総シートデータ量が 数メガバイトから 多くとも数ギガバイトに さしかかる頃には 私の今の理解度では エラーが出て 実行が止まってしまいます。 恐らくは タイミングの問題で 中間時点のセーブ時の 長い所要時間を 待ちきれず エラーになる ので、しょうか? で、其処で質問 なのですが、 セーブを含む全処理の一つも飛ばさず 此のエラー発生を 回避させ得る方法を 知りたく思います。 ご指南を、宜しくお願い致します。             nouble1        記 実行文のニュアンス例 Sub test()As valiant Dim 列 As long,行 As long Const セーブ周期 = 1000’行 Const 記入列 = 1000’列 Const 記入行 = 1000000’行 ’ ※注:環境毎に適正値に修正の事 ’   With Thisworkbook     行 = 4     Do       With .Activesheet         For 行 = 行 to 行 + セーブ周期 ー 1           For 列 = 3 to 記入列 + 2             .Cells(列 ,行).Value = 列           Next 列         Next 行       End With       .Save     Loop Until 行 >= 記入行   End With End Sub               以上

みんなの回答

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.3

#1です。 申し訳ありません。 >For 行 = 行 to 行 + セーブ周期 ー 1 は無限ループになるのかと思ったのですが「行 + セーブ周期 ー 1」の部分はループ時に毎回評価されるわけじゃないんですね。 ただ、その起きると言われているエラーのメッセージを伏せられるのは何故なんでしょう。

Nouble
質問者

お礼

お越し頂き有り難うございます。 伏せているのではなく 今単純に判らない 其れだけです。 エラーが出るには 膨大なデータが書き込まれるだけの それなりの時間が掛かります。 因みに私の環境では、三日はかかります。 伏せているのではなく 直ぐには判らない 此か真実です。 後、 私の環境だけがエラーになる そうのか、確認したい と、言うのもあるます。

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.2

>が、何ら実行上問題ないもの >と、思います。 私の聞いてるのは「その部分は、あなたの思ったように動作しますか」という事なんですが。 「行」の値の遷移をよく考えて、どういう事になるのか考えてみてください。

Nouble
質問者

補足

あぁ!! 其処ですか、失礼しました お察しの通り 走らせれば判りますが 無問題です。 個人が開発したような コンパイラ環境を除いて かなりの古から 予想される要因は塞がれているものです 確かに 当てにして、甘えたら 罠にはまります が、 問題が無いのか を、確認した後は 出来る事を格段に広げるもの 其れがありますから 固定観念を廃絶すると、 凄く世界が広がりますよ。 てか、 今更ですが 質問の趣旨とずれていますよ (^^;)汗

  • wormhole
  • ベストアンサー率28% (1626/5665)
回答No.1

>私の今の理解度では >エラーが出て >実行が止まってしまいます。 そのエラーというのはエラーメッセージは出力されないんですか? 出力されるのなら、それを書きましょう。 >For 行 = 行 to 行 + セーブ周期 ー 1 これ、あってます?

Nouble
質問者

お礼

お越し頂き有り難うございます。 〉これ、あってます? はい、確かに 此の表記に馴れてない方 だと、驚かれる かとは、思います。 が、何ら実行上問題ないもの と、思います。 メモリーなんて ただの電子の物理的在り様 そもそも定数でなくて言い訳ですし 代入式の左右に同一変数を許容する と、いう 決まりも、あります。 ので、 3秒程も考えれば 誰でも行き着きうる到達点だ と思います。 蛇足を言うと For文で指定、使用したループ変数を Forループ内で改変する 何て事をしても コンピューターもプログラムも 共に、 生理的な複雑なしがらみ等、持たず 一切の過去を留めず 命令が与えられた瞬間の 其の今、ある在り様のみから メモリー、レジスター、等の状況 其れ等からのみから、 挙動を決める そう言う物 ですから コンピューターが 発狂するとか 怨念を抱くとか 破壊工作を企て出すとか 一切無いですよね。 逆に メモリーでもバッファでもレジスタでもない そんなものが ある種生き物のように 消された記憶を留め 剰え、恣意的な悪影響を企む なんて、 見つければ一生食っていける論文が書けますよ ある種ホラーですよね でも、其のような現象は 今の所、 科学のテーブルの上では 詳らかでは無いでしょう 所詮電子の挙動 生き物じゃあるまいし イジグっても問題ない ですよね? 故に、 此の程度のものは 極ありふれたもの では?

関連するQ&A