• ベストアンサー

VBA(メモリ展開)

プログラム経験があまりないんですが (Excelで作成中) シートに出力しながら処理するのではなく メモリ上に展開してから出力するようにといわれたんですが メモリに展開っていう言葉の意味が自分の思っていることとあってるか自信がないです。変数(配列、構造体)などに値を入れて保持するっていうことだと思っているんですけど。 調べてる途中ですが、アドバイスいただけたら助かります。

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

  • ベストアンサー
  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

配列にいれてデータ処理して最後にシートに書き込む でいいとおもいますよ シートにデータを展開する(書き込む)とExcelの機能を使っていろいろな操作を簡単に行うことができる こ と もあります が、画面の書き換えが発生するので、大量のデータを扱う場合、とても時間がかかるということを言いたいのでしょう 画面更新をしないようにすればある程度高速化されますが、それぞれの作り方ありますから・・・

nishimu
質問者

お礼

ありがとうございます。 参考になりました。

関連するQ&A

  • プログラムの原理について

    プログラムはメモリ上どのように展開されているのか、宣言した変数はメモリにどう割り付けられるのか、変数を参照したり、変数に値を入れるときはどういう仕組みになっているのか等わかりやすく教えてください。お願いします。 また、宣言、定義などといった言葉に関しての質問になるのですが、定義は記憶が割り当てられていて、宣言は割り当てられていないと本にはあるのですが、これはメモリとスタックとの違いでよいのでしょうか?また、構造体は定義されていると書かれているのですが、その構造体の中のintの宣言は、定義になるのでしょうか?

  • C言語のStatic変数について

    現在、C言語の勉強しながらゲームプログラムにチャレンジしています。 二つの関数で利用する変数を作りたかったので、Static宣言された変数を容易しました。 ですが、この変数、一度処理が終わると当面使わない変数なのです。 (ただし、処理途中は何度も呼び出されるので値は保持しなければいけません) よって、メモリ上に延々居座られるのが邪魔に思えて仕方ありません。 実際、大したことないだろうとは思うのですが。 このStaticで宣言された変数を、自分の好きなタイミングでメモリ上から解放するような処理はできませんか? もしくはメモリ上に居座ることのない処理の仕方などありましたら、 考え方を教えていただけるとうれしいです。よろしくお願いします。

  • ExcelのVBAのテクニック

    ExcelのVBAを3時間前位から使い始めました。矩形波のフーリエ級数展開の式を項数nを変化させたときのグラフのプログラムを作っています。n,xがある値の時のyの値を出力できるところまでできたのですが、n,xを変化させたときのyの出力の簡単な方法はないでしょうか?配列にn,xの値を代入すればできるのかもしれませんが、Excelのふつうの関数のようにセルを相対参照させて、フィルを使うようにはできないでしょうか?誰か知っていたら教えてください!

  • メモリ破壊で困っています。

    学生です。 現在、cの課題プログラムを作成していて、メモリ破壊と思われる現象で困っています。具体的には、 mallocである構造体へのポインタの3次元配列を確保したはずのものが(malloc時にNULLは返ってきていない)、その後、関係のない関数を呼んだ瞬間にその配列の値が書き換えられている。もしくはアクセスできなくなるといった状況です。 gdbで調べてみたところメモリを確保してから破壊されるまでにfreeはしていません。「関数を呼んだ瞬間に」値が変わるというのは原因がまったくわかりません。 どなたか心当たりある方、ぜひともアドバイスをよろしくお願いします。

  • MSアクセスVBAでメモリ不足?

    MSアクセスのVBAマクロを使い、テーブルから取得したデータを、エクセルブックに貼り付けるアプリを作ったのですが、 エクセルに値をセットするステップ(Cells(x,y)value = 取得したデータ)で 『実行時エラー1004:アプリケーション定義またはオブジェクト定義のエラーです』 というエラーが発生します。 エラーをなくすにはどうしたらいいのでしょうか。 ブック内のシート数は、全部で何十シートにもなるのですが、 データによって、エラーが発生するシートが違うこと、 10~20シートごとに1回はエラーが発生すること、 エラーが発生した時に、原因になった行をコメントアウトしても、その次の行でエラーになること、 などから、もしかしたら処理の途中でメモリ不足になっているのかもしれない、と感じているのですが、 処理の途中でエクセルブックを保存したり、一度閉じて再びOpenしたり、してみましたが、エラーは出てしまいます。 メモリは関係ないのでしょうか。。。

  • メモリ

    これを見て直感的にどこがおかしいか分かる人いませんか? VC++6.0のMFCです。 ViewクラスとDialogクラスの2つあります (1) 1回目の処理 ファイルオープンダイアログを出現させ開くを押した場合のみ次に進む(Viewクラス) ↓ 構造体を作ってメモリを取得し、ファイルから構造体に値を入れる(Viewクラス) ↓ Dialogクラスにその構造体の一部の値を渡しダイアログを出現させ 値を表示する。(作図してOKなら) okボタンを押しokボタンを 押したときのみ次の処理(作図)。(Dialogクラス) ↓ Viewクラスに戻り作図(Viewクラス) ↓ viewクラスのデストラクトにて構造体のメモリ解放(Viewクラス) ↓ 終了 2回目も同じ処理 結果:エラーなし (2) ファイルオープンダイアログを出現させ開くを押した場合のみ次に進む(Viewクラス) ↓ 構造体を作ってメモリを取得し、ファイルから構造体に値を入れる(Viewクラス) ↓ Dialogクラスにその構造体の一部の値を渡しダイアログを出現させ 値を表示する。(作図してOKなら) okボタンを押しokボタンを 押したときのみ次の処理(作図)。(Dialogクラス) ↓ Viewクラスに戻り作図(Viewクラス) ↓ viewクラスのデストラクトにて構造体のメモリ解放(Viewクラス) ↓ 終了 2回目はファイルオープンダイアログにて開くを押さない 結果:エラー (3) 1回目2回目ともにファイルオープンエラにて開くを押さない エラーなし (4) エラーとなるのは(2)ですがデストラクタにて メモリを開放しなければエラーはでませんでした。 どこがおかしいのか分かる人いれば教えて下さい。

  • エクセルVBAでサブルーチンへの変数の配列渡し

    エクセルVBAで、メインで使用してる配列変数(の値)をサブルーチンに渡したいが、どうすればよいでしょうか。(なお、メインプログラムは大きいためこれ以上は書けないのでサブルーチンを使用) よろしくお願いいたします。

  • sinのマクローリン展開

    再帰的関数定義とsin(x)のマクローリン展開の初めの10項を用いてsin(x)の近似値を出力するプログラムを作成せよ。 という問題で、マクローリン展開は分るのですがプログラムに出来ません…。 関数まで習っていて、配列などはまだ習っていないのですが、 どうやれば良いのかどなたか教えてください_| ̄|○

  • エクセルのVBAでオブジェクトの配列変数は使えますか?

    VBですとオブジェクトの配列変数というか、コピーしたときに自動的に配列になってしまいますが、エクセルのVBAの場合でオブジェクトの配列変数は使えますか? なにをしたいかというと、ボタンが多すぎて一つ一つにプログラム定義は面倒、そこで配列にしてまわすことにしたいのですが、エクセルで可能でしょうか。 どなたかお願いします。

  • VBA初心者です。。。

    本日はじめてVBを触り、至急以下を事を実現させたいので、 どなたかご教授お願い致します。 (基本プログラム自体初めてですが、変数の考え方などはわかります。) 【行いたいこと】 1.シートをコピー 2.コピーしたシートの名前を変更 3.コピーしたシートの特定のセルに値を入れる 備考:シート名、特定のセルに入れる値はリストから順番に抽出し、 30回この処理を繰り返す 【質問】 1.シートの名前をリストから抽出する方法  →固定値での名前変更は出来るのですが、Excelのセルから値のとり方が不明。。 また、リストから順番に取る方法も不明。。。 (Ex:シート1のA1:A29の値を順番にコピーしたシート名にしていく) 出来れば、例のコードをつけて頂けたら幸いです。。。 以上、どなたか宜しくお願いします!

専門家に質問してみよう