• 締切済み

エクセルVBA、マクロについて教えてください。

https://box.yahoo.co.jp/guest/viewer?sid=box-l-62itttdrrgzrvsaxkvu53tmg3a-1001&uniqid=d4c90186-7ae6-4c7a-8f04-a499509147fc&viewtype=detail サンプルブックを見て頂きたいのですが、シートに分けておりますが、それぞれ別ブックとなります。 エクセルブックAにはシート1-シート10まであります。 ブックAのデータをVBAを使って、ブックBに転記したいのですが、 今はVBAがわからないため、作業列、関数を使って読み取っているのですが、検索をかけると、とても遅いため、関数を消すと早く検索が出来たため、VBAでデータを転記出来たらいいなと思っております。 いくつか条件があるのですが、 ブックAのAQ-ATが作業列としており、 ブックBのG-Uまで関数を入れております。 G4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,G$2) H4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A5,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,H$2) I4==SUMIFS('[ブックA.xlsx]シート1'!$AD:$AD,'[ブックA.xlsx]シート1'!$AQ:$AQ,$A4,'[ブックA.xlsx]シート1'!$AS:$AS,$F$2,'[ブックA.xlsx]シート1'!$AT:$AT,I$2) 同じような関数をG-Uまで入れております。 このような関数を入れております。 E4==VLOOKUP(A4,'[ブックA.xlsx]シート1'!$B:$AC,28,FALSE) この関数をなくすとAdvancedFilterが早くなるので、ここの部分を転記出来たらと考えております。 ブックAとブックBはブックAのB列のコードとブックBのA列のコードが一致すれば、転記すると言った感じです。 決まっている部分は、商品コードは重複しないのと、ブックAのB列は結合されております。 結合セルのため、作業列を使用しておりました。 ブックAの基準をかえずに転記できる方法があればおしえてください。

みんなの回答

回答No.1

こんにちは。 直接の回答ではないのですが、誰もレスが付かないので書かせていただきます。 アップロードしたファイルの再現性--要するに、今回の質問上の数式を、ブックの部分を該当シートに書き換えて、そこに当てはめてみましたが、なぜか、手書きで入れた数字と同じ数字が出てこないので、継続は諦めました。もし、同じ数字が出てくるなら、難なくマクロ化は可能だと思います。 私だけかもしれませんが、ご質問のような、他人の立てた数式をVBA化するのは、あまり好んでしません。今使っているものへの、付加価値のようなものだからです。 特に、ワークシートのレイアウトが凝ったものは、手がつけにくいことだけは申しておきます。 シート側は、なるべく単純化されたものの方が、マクロ化しやすいです。 もう一度、分かりやすくしたものを、新しい質問にしたほうが解決が早いかもしれません。 なお、Webクエリの質問も出ているようですが、Webごとの解析が必要になることもありますので、具体例がないと、あまり積極的な回答はつかないと思います。 余計な話でしたら、どうか、スルーしてください。

すると、全ての回答が全文表示されます。

専門家に質問してみよう