[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『CSVデータから一覧表作成・印刷後保存しないで閉じる』(ま〜さん)
はじめまして。
毎日の作業なので、なんとか簡単にできないかと思い、こちらで質問させていただきました。
会社の独自のシステムより、受注データをCSVデータで出力し、
それを出荷一覧表にして印刷した後に保存しないで閉じるというVBAはできますか?
CSVデータはエクセルで出力されます。そこから下記の一覧表を作成しています。
【CSVデータ】
A B C D E F G H I J K L M N O P Q R 1 納期[2015/03/01]-[2015/03/31]得意先[10095 ]-[10095 ]部門[0100]-[9999]全て 大分類[ ][ ] 中分類[ ][ ] ** 得意先別納期一覧 ** DATE : 2015/03/12 2 得意先CD 得意先名 伝票No 行No 受区 受注日 納期 部門CD 部門名 部品CD 部品名 単価 数量 受注金額 受注残数量 受注残金額 相手先注文No 備考 3 10078 (株)○○○○ 281873 1 2 2015/3/2 2015/3/16 5001 製造部 △△△ A 465.5 768 357504 768 357504 4003438262 4 10078 (株)○○○○ 281980 1 2 2015/3/4 2015/3/18 5001 製造部 ◆◆◆ B 465.5 1056 491568 1056 491568 4003450079 5 10078 (株)○○○○ 282077 1 2 2015/3/6 2015/3/20 5001 製造部 ◆◆◆ B 465.5 672 312816 672 312816 4003459645 6 10078 (株)○○○○ 282312 1 2 2015/3/10 2015/3/24 5001 製造部 △△△ A 465.5 672 312816 672 312816 4003469602 7 10078 (株)○○○○ 282384 1 2 2015/3/11 2015/3/25 5001 製造部 ◆◆◆ B 465.5 1056 491568 1056 491568 4003475529
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
【出荷一覧表】
A B C D E F G 1|出荷日 |伝票No |部品CD |部品名 |出荷数量 |相手先注文No |備考 | 2|2015/3/16 |281873 |△△△ |A |768 |4003438262 | | 3|2015/3/18 |281980 |◆◆◆ |B |1,056 |4003450079 | | 4|2015/3/20 |282077 |◆◆◆ |B |672 |4003459645 | | 5|2015/3/24 |282312 |△△△ |A |672 |4003469602 | | 6|2015/3/25 |282384 |◆◆◆ |B |1,056 |4003475529 | |
※納期→出荷日 数量→出荷数量 に変更しています。
表は罫線で囲んであります。
一覧表の高さは30に設定。
A4サイズ横で全ての幅が1ページに収まるように印刷設定。
どうぞよろしくお願いいたします。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
会社のシステムから出力されたCSVなりエクセルブックなりを加工するのは、なんとでもなりますが 会社のシステムに手を伸ばして、そこからデータを引っ張り出すというのは、基本的には無理です。
会社のシステムがどんなものかもわかりませんし、どんなDBを使っているかもわかりませんし DBの中の項目がどんな形で保持されているかもわかりませんから。
たとえわかったとしても、勝手にデータを抜き出していいかどうか、これは、会社のシステム主管部所 (IT部門や、管理部署)の許可がいるでしょうね。
すでにアップされたようなイメージのCSVファイルがどこかのディスクスペースにあり それをVBAで加工するのは、できますよ。
(β) 2015/03/19(木) 15:29
みたところ、エクセルに出力された後の処理についてみたいですけど
どう見てもマクロの記録が一番手っ取り早いと思われます。
(稲葉) 2015/03/19(木) 16:02
イメージがずれていてわかりづらいんですが、出荷一覧表の1行目のタイトルと、エクセルに展開したCSVデータの2行目のタイトルが同じなら フィルターオプション(フィルターの詳細設定)一発ですね。操作としても、手間がほとんどかかりませんし、マクロがいいなら、それを マクロ記録すれば、ほとんど、そのまま使えるコードが生成されるはずです。
(β) 2015/03/19(木) 16:22
コメントの返信、ありがとうございました。
CSVデータは一度どこかに保存したほうがいいのでしょうか?
そこからデータを取り出してマクロを記録した方がいいのでしょうか?
また、印刷後に保存しないで閉じるというマクロはできるのでしょうか?
質問ばかりですみません。お手数をおかけしますが宜しくお願い致します。
(ま〜さん) 2015/03/19(木) 17:16
仮に、何かの操作でエクセルとして立ち上がっていたとすれば
そのエクセルとしてのシートで直接、加工して、実ようなブックにコピペし
加工後に保存せずに閉じる。こういったことはできますよ。
もちろん、それをマクロでやる場合も同じです。
(β) 2015/03/19(木) 17:36
衝突してしまいましたが、書いたので・・・
>CSVデータは一度どこかに保存したほうがいいのでしょうか? はい。 βさんはこれがVBAではできないと申しています。
>そこからデータを取り出してマクロを記録した方がいいのでしょうか? 保存場所と名前さえ決めておけば、マクロの記録で自動的に開いて、保存しないで閉じる動作も 記録されます。
>また、印刷後に保存しないで閉じるというマクロはできるのでしょうか? ↑で述べたとおりです。
詰まるところ、処理するブックをひとつ作っておき、そのブックへの記録になります。 マクロの記録なら、こんな感じの手順でやっていけばそれなりにできると思います。
1)CSVファイルを開く 2)データを加工する(不要な列の削除、項目名の変更) 3)印刷設定で範囲を指定する(表の最初を選択して、 Ctrl+*で表範囲を選択できるので、その状態で印刷範囲の設定 それでもオーバーするなら、列幅の調整とか、余白を減らすとか 4)シートを新しいブックにコピーして、任意の場所に保存する 5)1で開いたCSVファイルを保存しないで閉じる
βさんがフィルタオプションとおっしゃってますが、みたところフィルタをかけているところはなく、 単純に整形だけなのでこれだけでも十分かと思われます。
リボンの開発タブは最初表示されていませんので、オプションから表示させてください。 わからないことがあれば、記録したコードを提示いただければ、答えてくれる人はいると思います。 (稲葉) 2015/03/19(木) 17:44
>βさんはこれがVBAではできないと申しています。
いえいえ、保存もできますし、保存せずに閉じることもできますよ。 私の表現力がプアだったですかね?反省。
>印刷設定で範囲を指定する
よく見ると(よく見なくても?)全くその通りでしたね。 いまでも、
「毎日の作業なので、なんとか簡単にできないかと」・・・簡単にできるはずですね。
最終的には一覧表のデータとして保存が必要なので、印刷範囲の指定ではなく、 最初から不要な行、列を削除して印刷して、名前を付けて保存。 こんなことですね。
これは、マクロのでる幕でもないですね。
(β) 2015/03/19(木) 17:56
>会社の独自のシステムより、受注データをCSVデータで出力し、 私はこの部分がVBAではできないと思っているのですが、できるんですかね!?
ならもっと簡単にできる?? (稲葉) 2015/03/19(木) 18:07
>私はこの部分がVBAではできないと思っているのですが、できるんですかね!?
ああ、そうでしたか! それなら、私がコメントした通り、「できません」ですね。
(β) 2015/03/19(木) 18:23
いろいろと教えていただき、ありがとうございました。
稲葉様の手順の通り、マクロの記録をやってみたいと思います。
分からなくなったらまた質問させていただきますので
その際はまた教えて下さい。
(ま〜さん) 2015/03/20(金) 09:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.