- ベストアンサー
ExcelVBAについてのデータ抽出方法
- ExcelVBAを使用してデータ抽出する方法について解説します。
- マクロを使用して、データを特定の条件で抽出する方法を学びます。
- ExcelVBAを使いこなすことで、効率的なデータ処理が可能となります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
#1です。 Range("B371").SelectのRange("B371")はシート は、Sheets("オリジナルデータ")のRange("B371")でしょう。 この後、関心がSheets("TR-A").Select に移っている。しかしSheets("オリジナルデータ")のシートのアクチブセルはRange("B371") だと思う。(注)選択セルの保持は、1シート内での、ユニークである。その後何も利用するとか、加工するコードは見られない。 それでRange("B371")の(選択の)理由は計り知れない、と思います。第3者に聞くべきことではない。コードの出典に何か書いてないか、調べること。 マクロの記録の結果は、こういう(もし誤ってした)無駄な操作も記録ーー>VBA化される。 全般に、なぜそんなことを気にするのか、疑問に思う。 もっとVBAで、詮索すべき大事なことがいっぱいあるはず。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
操作を横で見ているつもりで、記すと、 「オリジナルデータ」というシートの、セル範囲"$A$1:$E$1000”を選択して、その範囲を対象にして、B列の値が、文字列の「TR-A」のものを抜き出し表示する。 ーー その抜き出されたデータ範囲をコピーして、別途っ作られた、「TR-A」という名のシート(条件文字列と、わざと同名のシートを作っておいて)に張り付けている。起点は、Sheets("TR-A").シートの、A1セルだ。 最後にSheets("オリジナルデータ")シートに選択を戻している。 ーー 後じまいとして Application.CutCopyMode = False ーー>コピーモードを解除 Selection.AutoFilter ーー>AutoFilterを解除ーー>全行当初の状態に復帰 ==== こんな面倒な逐条解説を読者にさせず、 上記にふさわしい、適当な数のデータを作って、上記の操作をして、マクロの記録でも採って、比べてみれば勉強になるだろう。 余りにも、読者に頼りすぎだと思う。 == 質問のコードは、マクロの記録を採って、それを挙げたようで、Selectがやたらに多い. またSheets("TR-A").Selectの直後にRange("A1").Selectと2段構えに書いているなど、 如何に省くべきか勉強したら。 この癖を、将来、別件処理のVBAで、引き継がないように。
補足
B371はコピーした後、どのように選べば良いのでしょうか?抽出後に書かれていますよね?教えていただけると嬉しいです。