Excel (VBA)

Excel VBAに関するフォーラムです。
  • 掲示板への投稿には会員登録(無料)が必要です。会員登録がまだの方はこちら
  • 掲示板ご利用上のお願い」に反するご記入はご遠慮ください。
  • Q&A掲示板の使い方はこちらをご覧ください
トピックに返信
質問

 
(Windows 10 Pro : Excel 2016)
リストを作成したい
投稿日時: 18/06/05 12:05:25
投稿者: hata

教えてください。
シート1に、
   A    B    C      D
1 コード 客先名 車両No メーカー
2  1   A   001   トヨタ
3  1   A   002   ダイハツ
4  2   B   009   スズキ
5  3   C   005   三菱
と、データがあります。
 
これを、シート2に
   A    B    C      D
1 コード  1
2 客先名  A
3  
4 車両No メーカー 
5  001   トヨタ
6  002   ダイハツ
 
というように、コードを入力したら一覧が出るようにしたいです。
何か良い方法は、ないでしょうか?
 
よろしくお願いします。

回答
投稿日時: 18/06/05 14:26:03
投稿者: WinArrow
投稿者のウェブサイトに移動

VBAでなければいけないのかな?
 
一般機能に
オートフィルタという機能があります。
別シートに抽出するには、フィルタオプションという機能もあります。
 
VBAコードで悩んでいるより簡単で早く確実に作業できますよ

投稿日時: 18/06/05 14:34:21
投稿者: hata

VBAじゃなくてもいいです。
 
ただ、できればすべての顧客用のシートを作りたいのです。
なので何かよい方法はないかと思っていました。
 
フィルターオプションですか。よく知りませんでした。
やってみます。
ありがとうございました。
 
 

回答
投稿日時: 18/06/05 15:15:51
投稿者: mattuwan44

>ただ、できればすべての顧客用のシートを作りたいのです。
あれ?コードを入力して表示ではなく?
 
シートの見出しを選択して、顧客別を見る仕様に変更ですか?
そうなると、シートの見出しをいつ作るかが問題になりますね?
 

回答
投稿日時: 18/06/05 17:57:14
投稿者: WinArrow
投稿者のウェブサイトに移動

私見ですが
 
シート1が全データ(基データ)と考えると
シート2・3・4〜〜は、客先で抽出した、クローンですよね?
 
今後のメンテナンスはシート1で行われると思います。
そうすると、クローンのシートとは不整合になってしまいます。
クローンも一緒にメンテする手間を掛けるのですか?
 
オートフィルタで選択して印刷するだけで、敢えてクローンを作成する必要がないと思いますが
・・・・いかがですか?
 
 

投稿日時: 18/06/06 09:19:50
投稿者: hata

すみません。
質問の仕方が悪いかもしれません。
シート1は、他のシステムから切り出したCSVのファイルです。
シート2〜何枚かは、固定客のシートを作りたいと思っています。
そこで、上記の質問になりました。
 
いい方法ないでしょうか?
よろしくお願いします。
 
 

回答
投稿日時: 18/06/06 10:19:59
投稿者: Suzu

オートフィルター/フィルターオプション を試されたのですよね?
 
何が不満だったのでしょうか。
 
ただ良い方法をよこせでは何も進展しませんよね。
 
問題点があるならそれを明らかにしましょう。

回答
投稿日時: 18/06/06 10:26:12
投稿者: WinArrow
投稿者のウェブサイトに移動

hata さんの引用:

シート1は、他のシステムから切り出したCSVのファイルです。
シート2〜何枚かは、固定客のシートを作りたいと思っています。
そこで、上記の質問になりました。
 
いい方法ないでしょうか?

 
話は分かりました。
 
質問の仕方になると思いますが、
これは、「コードの作成依頼」に相当します。
 
「掲示板ご利用上のお願い」にも書かれていますが、「コードの作成依頼」は禁止されています。
 
あなたが自分で考えたコード(他から引用したコードを含む)を掲示して
>よい方法は?
と問うならば、質問としては成り立ちます。
 
このような方向で、再質問してみませんか?

回答
投稿日時: 18/06/06 17:11:32
投稿者: WinArrow
投稿者のウェブサイトに移動

方法論を紹介します。
 
元データがCSVファイルということなので、大きく2通りの方法があります。
 
【方法1】
(1)CSVファイルをExcelシート‭に取込んで、
(2)「客先」の個数を求め、
(3)「客先」数に対応したシートを用意する。
(4)「客先」に対応したデータを抽出する。
  (4-1)オートフィルタを使用する場合は、選択→コピペ
 (4-2)フィルタオプションを使用することもできます。
 ※客先数分(4)を繰り返します。
 
この方法は、手作業でも実行可能です。
 
 
【方法2】
(1)CSファイルを読み込みしながら、
 シートを作成し、データを書き込む 
 全てをVBAで実行する方法です。
 
 この方法は手作業では無理です。
 
 
 

回答
投稿日時: 18/06/06 19:19:37
投稿者: mattuwan44

>シート2〜何枚かは、固定客のシートを作りたいと思っています。
んと事前に何枚か既定のお客のシートを作っておいてそこに、
読み込んだファイルのデータから、既定のお客のシートタブをクリックしたら、
既定のお客だけのデータを表示したいということですか?
データに含まれるすべてのお客分シートを作らなくてもいいのですかね?
 
そうなると、
1)データのファイルを開く
2)特定のお客さん毎に繰り返し
3)オートフィルターで特定のお客のデータ抽出
4)特定のお客さんのしーとにコピペ
5)2からお客さん分繰り返し
とすればできますね。
これを手動でするか自動でするかは、
hataさんの考え次第です。
 
まぁ、オートフィルターで抽出すれば、欲しいデータは見れるはずですが、
なぜかみなさん、別シートに分けたがりますよね。
まぁ、元データをユーザーに触らせると、
間違いが起こりやすいのはわかります。
ただ、質問が、
>何か良い方法は、ないでしょうか?
漠然としすぎです。
回答としては、
クセルにはVBAというプログラミング言語で自動でエクセルを操作できるマクロを作る機能があるので、
その機能でオートフィルターを自動で繰り返し、シートにデータを振り分けるマクロを
作ることができます。

 
というくらいしか出来ないです。
叩き台となるサンプルを作ることも可能ですが、
hataさんが本気でVBAを勉強する気がないとたぶん中途半端な物しか作れないと思います。
それに他の方も指摘されてますが、「作ってください」と依頼するのは基本的には、NGです。
回答側の勉強の一環で作ったマクロを勉強の成果として提示される場合もありますが、
それは、同じように勉強していたたくための参考資料です。
その辺はご理解ください。
 
あ、別案としては、
ピボットテーブルという機能にも、フィルターをかけて抽出表示する機能がありますので、
そちらも使い方を研究してみてください。
 
試行錯誤した結果、また上手くいかないなら、
何をどうしたか、提示していただければ、またアドバイスが出来ると思います。
 

トピックに返信