質問: vbaの課題について今日5時間も考えた結果、答えに辿り着けなくて自分のセンスの無さを疑いつつ、仕事なのでなんとか片付けないとと思いこちらに質問させていただきます。 やりたいことは以下です。 使う物 : エクセル・vba・csvデータ csvは以下内容です。 販売日,タイプ,パターン,屋さん 2016-05-23,A,みかん,八百屋 2016-05-22,B,ぶどう,八百屋 2016-05-22,C,りんご,八百屋 2016-05-26,A,みかん,八百屋 このcsvを一行ずつエクセルの表に読み込みます。 表はNo,パターン,タイプ種類(A),(B),(C)の各5列ございます。 読み込む際はタイプとパターンだけ読み込みます。 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/7643a76978bf4d6b91f52cf464375338.jpeg) この画像の種類にパターンを入れていくのですが もし、みかん、ぶどう、りんごときて、みかんが来た場合、一行目と重複するので四行目に追加しないで、一行目のタイプAに件数をプラス1するという機能を実装したいのですが 考えてもわかりませんでした・・・ 作る際はファンクションを使って作れと上司に言われておりますので、sub()とfunction()を使って作る方法をご教授頂けたら幸いです。 おそらくfunction側の繰り返しの書き方さえご助言頂けたら自力で解けるかと思います。 どうぞよろしくお願い致します。
回答: 要はパターン(種類)別のタイプの出現件数を数えるってことですか? わざわざExcelを使ってやるのなら * 一旦ワークシートにCSVを読み込む * パターン(種類)別のタイプの件数を集計する * 集計結果をワークシート書き出す みたいな感じで あとベタに配列作ってもやれるんですけど、Excelらしさがスポイル(別にExcelでなくてもよい)されちゃいますね たとえばDictionaryオブジェクトとか使っちゃったり もし研修だと高度な回答をすると自分でハードルをあげちゃうだけかもです わからなかったら、ここがわからないって聞くようにした方がいいですよ ちなみにDictionaryオブジェクトを使うパターン Excel(エクセル) VBA入門:Dictionaryオブジェクトを利用する まあ難しく考えすぎじゃないですか?