こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

特定の条件でマクロを自動で起動できますか?

エクセルで在庫管理を考えています。
シートは1月~12月と一年分

各シートの
A列に使用品目
B列に使用数
C列に使用開始日
D列に使用終了日
E列以降は1日~31日の使用期間に合わせて
条件付き書式で色が変わり、
使用期間が一目で解る様にしています。

シートが月毎なので、月をまたいで長期使用する場合に
同じ内容を翌月や翌翌月にコピーしますがうっかり忘れる場合が多いので
C列に翌月以降の日付が入力された場合に
返却月までの空きセルに自動でコピー出来るようなマクロを
自動で起動できますか?

マクロは全くの初心者なので
ご教示宜しくお願いします。

投稿日時 - 2013-08-20 19:45:20

QNo.8228312

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

>ご指摘の方法とは
 データを入力するだけのシートから
 オートフィルタを利用して
 閲覧したい月のデータのみをコピーして
 別シートにまとめてコピーする考えで良いでしょうか?


そうですね。そのような感じで。

オートフィルタでも、フィルタオプションでも、ピボットテーブルでも、数式でも、マクロでも。抽出だけでなく、様々な計算、処理がしやすくなります。

唯一問題になる可能性があるとすると、数式を使う場合の、1 シートに記入するデータの行数ですが、例えばだいぶ控えめに 3,000 行といった程度だったら、全く問題ありません。

投稿日時 - 2013-08-23 00:07:20

お礼

度々お礼が遅くなって申し訳ありません。

前年のデータ件数をみても1500件程なので問題なさそうです。
フィルタオプションを使ってみたら簡単に出来ました。

集計等の処理をこれから考えますが大変参考になりました
有難うございます。

投稿日時 - 2013-08-27 13:24:03

ANo.3

皆さん同様の回答内容で恐縮ですが、

> (前略)マクロを自動で起動できますか?

出来ますよ。
「ワークシートが更新されたとき」のイベントとして書いてやればOKです。
「月別にシートを持って」という事ですから、
標準モジュールに当該の処理をするプロシージャを置いておき、
各シートが「更新されたとき」にこのプロシージャを呼び出すように作るのが現実的です。


ただし、

> マクロは全くの初心者なので

とのことですので、オススメしません。
少なくとも、

> C列に翌月以降の日付が入力された場合に
> 返却月までの空きセルに自動でコピー出来るようなマクロ

は自力で作成し、管理できるようになるのが先決です。
そんなに難しい事ではありませんので、是非頑張ってみてください。


まぁその前に、#1さんもおっしゃるように、
データベースを組む時のデータの持ち方から考え直した方が良さそうですが・・

投稿日時 - 2013-08-21 00:16:23

お礼

お礼が遅くなって申し訳ありませんでした。

>出来ますよ。
>「ワークシートが更新されたとき」のイベントとして書いてやればOKです。
>「月別にシートを持って」という事ですから、
>標準モジュールに当該の処理をするプロシージャを置いておき、
>各シートが「更新されたとき」にこのプロシージャを呼び出すように作るのが現実的です。

せっかく教えて頂いたのに、上記の部分は現状、全く理解出来ません。

>> C列に翌月以降の日付が入力された場合に
>> 返却月までの空きセルに自動でコピー出来るようなマクロ

>は自力で作成し、管理できるようになるのが先決です。
>そんなに難しい事ではありませんので、是非頑張ってみてください。


>まぁその前に、#1さんもおっしゃるように、
>データベースを組む時のデータの持ち方から考え直した方が良さそうですが・・

ご指摘の通り、自力で頑張ってみるのと並行して
元がら作り直す方も検討してみます。

投稿日時 - 2013-08-22 11:20:26

ANo.2

1)マクロは毎回起動されるようにして、
2)最初に実行条件を判断して
3)条件に一致してなければExitSubで終了させる
のはどうでしょう?

投稿日時 - 2013-08-20 23:12:21

お礼

お礼が遅くなって申し訳ありません。

教えて頂いた内容は理解できますが
現状、どのようにコードを組めば良いのか
全く解らないので1つずつがんばってみます。

他の方々のご指摘にもあったように
元から考え直して作った方が良さそうなので
そちらと並行しつつ考えます。

投稿日時 - 2013-08-22 10:49:05

できます。しかしよりお勧めなのは、シートを月ごとに分けないことです。シートが分かれていない 1 つの表から月別に分けて抽出することは、ごく簡単なので。

投稿日時 - 2013-08-20 20:23:41

お礼

お礼が遅くなって申し訳ありません。

ご指摘の方法とは
データを入力するだけのシートから
オートフィルタを利用して
閲覧したい月のデータのみをコピーして
別シートにまとめてコピーする考えで良いでしょうか?

現在使用している物は前任者が作成した物だったので
それを改良しようと思っていましたが
1から作り直した方が後々の事を考えるとよさそうですね。

投稿日時 - 2013-08-22 10:01:35

あなたにオススメの質問