- 締切済み
特定の条件でマクロを自動で起動できますか?
エクセルで在庫管理を考えています。 シートは1月~12月と一年分 各シートの A列に使用品目 B列に使用数 C列に使用開始日 D列に使用終了日 E列以降は1日~31日の使用期間に合わせて 条件付き書式で色が変わり、 使用期間が一目で解る様にしています。 シートが月毎なので、月をまたいで長期使用する場合に 同じ内容を翌月や翌翌月にコピーしますがうっかり忘れる場合が多いので C列に翌月以降の日付が入力された場合に 返却月までの空きセルに自動でコピー出来るようなマクロを 自動で起動できますか? マクロは全くの初心者なので ご教示宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
>ご指摘の方法とは データを入力するだけのシートから オートフィルタを利用して 閲覧したい月のデータのみをコピーして 別シートにまとめてコピーする考えで良いでしょうか? そうですね。そのような感じで。 オートフィルタでも、フィルタオプションでも、ピボットテーブルでも、数式でも、マクロでも。抽出だけでなく、様々な計算、処理がしやすくなります。 唯一問題になる可能性があるとすると、数式を使う場合の、1 シートに記入するデータの行数ですが、例えばだいぶ控えめに 3,000 行といった程度だったら、全く問題ありません。
- tsubuyuki
- ベストアンサー率45% (699/1545)
皆さん同様の回答内容で恐縮ですが、 > (前略)マクロを自動で起動できますか? 出来ますよ。 「ワークシートが更新されたとき」のイベントとして書いてやればOKです。 「月別にシートを持って」という事ですから、 標準モジュールに当該の処理をするプロシージャを置いておき、 各シートが「更新されたとき」にこのプロシージャを呼び出すように作るのが現実的です。 ただし、 > マクロは全くの初心者なので とのことですので、オススメしません。 少なくとも、 > C列に翌月以降の日付が入力された場合に > 返却月までの空きセルに自動でコピー出来るようなマクロ は自力で作成し、管理できるようになるのが先決です。 そんなに難しい事ではありませんので、是非頑張ってみてください。 まぁその前に、#1さんもおっしゃるように、 データベースを組む時のデータの持ち方から考え直した方が良さそうですが・・
お礼
お礼が遅くなって申し訳ありませんでした。 >出来ますよ。 >「ワークシートが更新されたとき」のイベントとして書いてやればOKです。 >「月別にシートを持って」という事ですから、 >標準モジュールに当該の処理をするプロシージャを置いておき、 >各シートが「更新されたとき」にこのプロシージャを呼び出すように作るのが現実的です。 せっかく教えて頂いたのに、上記の部分は現状、全く理解出来ません。 >> C列に翌月以降の日付が入力された場合に >> 返却月までの空きセルに自動でコピー出来るようなマクロ >は自力で作成し、管理できるようになるのが先決です。 >そんなに難しい事ではありませんので、是非頑張ってみてください。 >まぁその前に、#1さんもおっしゃるように、 >データベースを組む時のデータの持ち方から考え直した方が良さそうですが・・ ご指摘の通り、自力で頑張ってみるのと並行して 元がら作り直す方も検討してみます。
- bin-chan
- ベストアンサー率33% (1403/4213)
1)マクロは毎回起動されるようにして、 2)最初に実行条件を判断して 3)条件に一致してなければExitSubで終了させる のはどうでしょう?
お礼
お礼が遅くなって申し訳ありません。 教えて頂いた内容は理解できますが 現状、どのようにコードを組めば良いのか 全く解らないので1つずつがんばってみます。 他の方々のご指摘にもあったように 元から考え直して作った方が良さそうなので そちらと並行しつつ考えます。
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
できます。しかしよりお勧めなのは、シートを月ごとに分けないことです。シートが分かれていない 1 つの表から月別に分けて抽出することは、ごく簡単なので。
お礼
お礼が遅くなって申し訳ありません。 ご指摘の方法とは データを入力するだけのシートから オートフィルタを利用して 閲覧したい月のデータのみをコピーして 別シートにまとめてコピーする考えで良いでしょうか? 現在使用している物は前任者が作成した物だったので それを改良しようと思っていましたが 1から作り直した方が後々の事を考えるとよさそうですね。
お礼
度々お礼が遅くなって申し訳ありません。 前年のデータ件数をみても1500件程なので問題なさそうです。 フィルタオプションを使ってみたら簡単に出来ました。 集計等の処理をこれから考えますが大変参考になりました 有難うございます。