• 締切済み

エクセルVBAでデータベースを作成しています。

エクセルVBAでデータベースを作成しています。 A列には日付データが日付が古い順に上から入っています。 B列以降は出荷数や次回納品日などの付属データが入っています。 A列(日付) B列(出荷数) 7/1     10 7/15      20 7/31     5 8/2     10 8/4     25 8/23    10 8/30    20 9/2     15 9/20    21 9/30     3 出荷データを更新する度に、最終行の次の行に新しいデータが追加されます。 上記データベースは3か月分のデータだけでも行数が3万近くになるため、エクセルの 限界行数に達する前に、何か手を打ちたいのです。 例えば、予め6万行を限界行数に決めておき、データ更新する際に、データベースの限界行数までの残り行数と、追加するデータの行数を比較して、後者が大きいときには、データ、つまりデータベースの行を消去する。というマクロを組みたいと考えています。上記の例で説明すると、10月分のデータを追加しようとして限界行数に達することが分かった場合、7月に該当する行を一括して消去する。という流れです。 限界行数に達したときに、MsgBoxで「1か月分のデータを削除してよろしいですか?」→OKのときに処理を実行するという流れで行いたいのですが、何かよいアイデアがあれば教えてください。

みんなの回答

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

>データベースの行を消去する 行が超えてしまうから消去してしまえ、というのはお薦めできません。 いろいろ検討案、再確認事項あります。 削除するくらいなら他のブックへ退避(移動)、としてください。 扱っている商品数はいくつくらいのオーダーですか。 おおむね30000商品ですか?。 この数でもって1ブックに記録する量を決めてもいいのではないでしょうか?。 A列B列しか使っていないならもったいないので、 縦軸に商品と月、横軸に1か月分1~31 これだけでも収まるデータ量が変わります。 過去の出荷数値を見る必要があるかどうか、 なければ最近2か月くらいを主なブックで管理、 過去3か月より前は退避用の保管ブックとして必要なときのみ参照 保持するデータを見なおしして、 それでVBAでどうするか考えたらと思います。 単純な値ならCSVファイル保管でも良い。 ACCESSがあればACCESSで行えばいいし、 導入できる予算あればそちらをお勧めします。

すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.1

そこまでやる気なら、そんな重たいエクセルのブックを取り扱うのは止めて、データはmdb(Access2003までのデータ形式)で持ち、必要なデータだけワークシートに読み込んで使用してはいかがですか。 http://home.att.ne.jp/zeta/gen/excel/c04p02.htm 万一、身の回りにAccessが1本もないという場合は、ExcelVBAからmdbを作る方法もあります。

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

関連するQ&A