[[20171016223237]] 『VBA 日時データの更新について 新しいデータの香x(ざざざざん) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA 日時データの更新について 新しいデータの差し替え、重複の削除など』(ざざざざん)

下記のようなことを考え、試行錯誤していますが初心者のためうまくできないどころか完全に行き詰ってしまいました。何かヒントをと藁をもすがる気持ちで投稿しております。

お詳しい方でがいらっしゃいましたら、大変恐縮ですが教えていただければ嬉しいです。よろしくお願いいたします。

加工データの更新を日時ごとに行おうと考えています。重複データの削除や最新データの反映が特にわからず苦悶しております。
下記がやりたいことになります。

1 「日次データ」の並べ替え。最優先キー:B列サイズ(自作リストで並べ替え)、次優先キー:E列日付
2 「日次データ」A列のデータに対し同じデータが一つのときはa、データが複数あるときはa,b,c・・・と連番順に末尾に付け加える。
(例)
 -1 → -1a
 -2 → -2a
 -2 → -2b
 -3 → -3a
3 「日次データ」のB列にデータがない場合は、「加工前」シートに、データがある場合は「加工後」シートに対して、「日次データ」の対象行を取り出し、それぞれの一番下の行にデータを加える。(※加工前、加工後シートの1行目は見出し)
4 「加工前」、「加工後」のそれぞれのシート内でA列の値が重複する場合、古いデータを削除し、最新日次データの値に置き換える。(※AB列にデータDL日が日時が記載されている)
5 「加工前」と「加工後」のA列を比較し、データが重複している場合は「加工前」データを消去する。

○データ
加工前番号,加工後番号,サイズ(mm),質量(kg),日時
A37911008,,0.2x500,"6,983",20170901
A37911009,R17831510,0.2x700,"4,458",20170904
A37911010,R17902502,0.3x900,"5,887",20170904
A37911010,,0.3x1000,"3,663",20170905
A37911011,R17831513,0.2x400,"8,739",20170904
A37911012,,0.5x500,"9,359",20170907
A37911012,,0.5x500,"8,818",20170904

○自作リスト(※実際は文字列)(エクセルのユーザー設定の並べ替えにおけるリストでは、項目が多い為実際のリストを反映できなかった。)
0.2x400
0.2x500
0.2x700
0.3x1000
0.5x500
0.5x500

1と3は下記を参考に何とかなりそうですが、2,4,5はコードが思い浮かびません。
http://www.excel.studio-kazu.jp/kw/20171012205012.html
http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/prog/prog04.html
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=73757;id=excel

< 使用 Excel:Excel2010、使用 OS:Windows7 >


ども^^

「日次データ」
「加工前」
「加工後」
これってシート名ですかね?

ぼくなら、
マクロブックに
入力用シートや検索・閲覧用シートを用意し、

データベース用ブックは別に用意します。

データをちょいちょいあちこちに移動せずに、
見たいものを見たいときに拾い出すイメージで作って見てはいかがでしょうか?
つまり、ユーザーに自由にデータベースのシートを触らせずに、
プログラムを通して操作させ、不要な操作で間違いが起こらないように設計します。

まずはその辺の設計から勉強してみてはいかがでしょう?
(まっつわん) 2017/10/17(火) 08:29


勉強してみてと言いましたが、なかなかいいサイトがなさそうですね^^;
↓ここは僕がいつも見ているサイトの一つですが文章が難しいですかね?
http://home.att.ne.jp/zeta/gen/excel/c03p04.htm

例えば、
マクロブックに、

「日次データ」
「加工前」
「加工後」

と3つシートを用意したとします。

作るマクロ(プログラム)としては、

ブックを開いたときに→日次データシートをアクティブにする
ブックを閉じるときに→日次データをデータベースに転記し、転記したのでマクロブックは保存しないで閉じる
加工前シートをアクティブにしたとき(選択したとき)→日次データがあれば、転記(転記したら入力用は消す)→シートをクリアしデータベースから加工前のデータを抽出しなおす
加工後番号を入力したとき→データベースを更新
加工後シートをアクティブにしたとき→シートをクリアし、加工後のデータをデータベースから抽出

このような動作をプログラムしていったらいかがでしょうか?

 >2 「日次データ」A列のデータに対し同じデータが一つのときは
 >a、データが複数あるときはa,b,c・・・と連番順に末尾に付け加える。

この動作は転記前にチェックしてやればいいでしょう。

こういったプログラムを一つづつ作ればいいと思います。

作りだしたら、色々疑問がいっぱい次々出ると思いますが、
漠然と全体の質問をされても、答えようがないので、
作りつつ躓いたところで、
も少しテーマを絞って質問された方がいいようにおもいます。
(まっつわん) 2017/10/17(火) 09:06


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.