• 締切済み

マクロでのピボット内検索について

エクセルマクロのピボット内検索について質問です。 Sheet1 に以下の通りピボットテーブルを作成しております。 A列 = 項目 B列~F列 = 数値 A列が項目aaa にマッチした場合、同じ行のB列~F列をコピーしたいのですが、マクロでピボットテーブル内の文字は検索できないのでしょうか。 他の方の質問を参考に、以下のマクロを書いておりますが、何度やってもaaa の行を指定できません。 Dim myrng As Range Set myrng = worksheets("Sheet1").Cells.Find(What:="aaa", After:=ActiveCell) ActiveCell.Resize(1, 6).Select Selection.Copy アドバイスいただければ幸いです。よろしくお願いいたします。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

worksheets("Sheet1").Cells と指定すると Sheet1のすべてのセルが検索対象になります worksheets("Sheet1").Range("A:A") と指定して A列に限定しましょう また 引数 Afterは検索を開始する次のセルを指定するためのパラメータですので 本当に ActiveCellでいいのかも検討しましょう 単純に Set myrng = worksheets("Sheet1").Range("A:A").Find(What:="aaa") if not myrng is nothing then   myrng.Resize(1,6).Select   Selection.Copy end if といった具合で試してみましょう

07_npmt_10
質問者

お礼

redfox63さん、 早速のお返事どうもありがとうございます! Range を使用してA列を指定したところ、検索ができ、 意図した範囲をコピーすることが出来ました。 マクロ初心者なので、ひとつひとつ、あぁでもないこうでもないと格闘している状態です。 次はaaa を変数にしてみます! 本当にありがとうございました!

関連するQ&A

  • ピボットテーブルの検索

    ピボットテーブルを作成し行と列のフィールド項目を検索しそれを他のシートから参照させたいのですが、行の列にはコードで区分し、列のフィールドは月で区分させています。日付はグループとアウトラインの設定で月単位にまとめています。 INDEX(A6:J16,MATCH(A1,A6:A16),MATCH(B1,A6:J6))でそれぞれの交点を参照させたいのですがA1をコード入力、B1を月入力にした場合、コードは1月~9月まではMATCH関数の値がかえってくるのですが10月~12月にした場合#N/Aが帰ってきてしまいます。原因は何になるのでしょうか? 教えてください。       A       B      C      D 1  コード項目   月項目 2 3 4 5  合計:金額   日付 6    CODE      1月     2月    3月 7   1010    100,000   150,000    200,000 ピボットテーブルはこんな感じになっています。 宜しくお願いいたします。

  • Excel VBA ピボットテーブル作成

    <元データ>Sheet1 A列 B列 C列 D列 E列 F列 商品名 種類 担当者 売上日 備考 本数 りんご 国産 新人 2010/4/1 売れ筋 5 なし 外国産 ベテラン 2010/4/5 通常 6 いちご 国産 新人 2010/3/23 通常 2 元データをもとにピボットテーブルを作成。添付図をご確認ください。 ピボットテーブルの下記条件を別シートにコピーしたいと考えています。※ピボットテーブルのシートはSheet2です。 C列の担当者で新人を選択、F列の本数で3本以上を抽出して Sheet3に貼り付けるマクロを考えています。 また、元データの行や列の増減に対応できるようにしたいです。 元データからピボットテーブルを作成して、希望条件のみを抽出して 別シートにコピーするマクロのサンプルをお教え頂けますでしょうか。

  • エクセルマクロでピボットと集計

    エクセルのマクロを使ってピボットと集計を行いたいのですが、データは毎日更新するため行は変わります。 1.ピポットの範囲で一番下の行にデータの合計行が残ってしまうため、その行を削除したい。(=左端から右下を選択したい 余分な集計の行はG列で最終データはH列です)  2.ピボットで作成したものを普通のワークシートに全部値貼り付けした後、集計を行いたい。  A B C D E F G H (列はHまでで常に固定) G列に数値、H列に日付 ピボットの範囲と集計の範囲が都度変わっています。 自動で作成したものを手直ししたいのですが途中箇所のマクロを抜粋しました。 マクロは初心者です。 説明不足もあるかもしれませんがどうぞ宜しくお願いいたします。  ピボットの範囲選択のあたり・・・ ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R1C1:R1236C8").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1", DefaultVersion:=xlPivotTableVersion10 ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) 集計のあたり・・? Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(5, 6, 7, 8, _ 9, 10, 11, 12, 13, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41 _ , 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, _ 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88), Replace:= _ True, PageBreaks:=False, SummaryBelowData:=True Range("B6").Select Selection.AutoFilter Field:=2, Criteria1:="=*集計*", Operator:=xlAnd Rows("6:900").Select With Selection.Interior .ColorIndex = 34 .Pattern = xlSolid

  • ピボットテーブルをマクロで行なうには

    以下3行目が項目でデータレコードが4~588行目迄入っています。(行数は毎回変わります) これをピボットテーブルで 縦列に"分類" 横行に"月" フィールドに"受注額(合計)" としたく以下マクロ記録しましたが次に実行しようとするとうまくいきません。 参考書読むとActiveSheetとEnd(xlUp)を使うのかなと思えたのですが 具体的にどのようしたら良いのか宜しく御願いします。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "'Aシート'!R3C1:R588C12").CreatePivotTable _ TableDestination:="", TableName:="ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select With ActiveSheet.PivotTables("ピボットテーブル1") .DisplayNullString = False .RowGrand = False .SmallGrid = False End With ActiveSheet.PivotTables("ピボットテーブル1").AddFields RowFields:="分類", _ ColumnFields:="月" With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("受注額(合計)") .Orientation = xlDataField .NumberFormat = "#,##0_ ;[赤]-#,##0 " End With End Sub

  • Excel マクロ ピボットテーブル範囲選択

    マクロで、ピボットテーブルでの範囲のコーディングの仕方について、どなたかどうぞ教えてください。 列・行とも行が毎回異なります。 どのようにしたら、毎回異なる範囲を、「SourceData:=」に反映させることが出来ますか? マクロ初心者ですが、なんとか作業効率をUPさせたいと思っています。 どうぞよろしくお願い致します。 自動作成されたVBAは以下の通りです。 ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _ "Sheet1!R3C2:R1767C52").CreatePivotTable TableDestination:="", TableName:= _ "ピボットテーブル1" ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ActiveSheet.Cells(3, 1).Select ActiveSheet.PivotTables("ピボットテーブル1").SmallGrid = False

  • ピボットテーブルの操作をマクロの記録で

    退職者が残したエクセルファイルがあります。 ピボットテーブル生成の操作をマクロの記録を使って自動化したようです。 私はピボットテーブルを一度も操作した事が有りません。 ですがマクロの記録で作られた構文を VBEのF8キーで1行づつ動作させると画面が変化していくので どういう操作をしてマクロの構文が出来たのかは分かりました。 ですが以下の部分だけ画面上の変化が無く何をどうすると この構文が作成されるのかまったく分かりません。 ピボットテーブルに関する件を検索しようにも マクロを使わない手操作でどういう操作、どういう機能を使ったのかが わからないので検索する事も出来ません。 ピボットテーブルウィザードから ワークシートが挿入されてテーブルを作成する際に どういう操作を行うとこのような構文が出来るのか 教えてください。お願いします。 With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品番") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("仕入先") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("品名") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("棚番") .PivotItems("(空白)").Visible = False End With With ActiveSheet.PivotTables("ピボットテーブル1").PivotFields("番号") .PivotItems("(空白)").Visible = False End With

  • エクセルのマクロ【複数検索&検索結果の合計】

    以下のように 【sheet1】にA列B列からなるデータにおいて A列の内容が同じものどうしのB列の値を合計し その結果の大きい順に並べて 【sheet2】に出力するマクロを 作りたいのですが、どうしたらよいかわかりません。 どなたかお分かりになる方いらっしゃいましたら 教えて頂きたくお願い致します。 【sheet1】   A列    B列 aaa 5 bbb 4 aaa 3 aaa 2 ccc 89 bbb 100 【sheet2】 A列 bbb 104 ccc 89 aaa 10

  • エクセルのマクロで検索機能を使いたいのですが

    お尋ねします。 エクセルのブックにsheet1とsheet2のシートがあります。 sheet1には、A1列料理名、B1列野菜、C1列和洋中の項目が入っており、値は、2行目から入っています。 sheet1のB列には、複数の野菜が入っている場合もあります。 sheet2には、A1列番号、B1列野菜(1種類しか入っていません)の項目があります。 sheet2の1行目は項目名で、2行目からA2が1、B2がナスというように B2列は、十数行あり、sheet2のB行の野菜を選択し、sheet1のB列を検索し、ヒットすれば、D2にヒットした野菜を記入します。 それを繰り返し、sheet2の野菜名を選択し、sheet1の料理名に該当の野菜が含まれるかを記載したいのですが、マクロの記述をどのようにすればいいでしょうか? よろしくお願いします。 sheet1  A        B      C    D    E ハンバーグ  タマネギ      洋   タマネギ 卵焼き              和   ギョウザ   白菜、にんにく   中   白菜   にんにく sheet2 A B 1 ナス 2 タマネギ 3 白菜 4 にんにく 5 キャベツ 6 人参 sheet1のD列から入っている野菜をD列、E列、F列とそれぞれ 野菜名を入れていきます。 すみませんが、お助けください。

  • ピボットテーブルを作成後、シートを削除するマクロ

    いつもお世話になっております。 ピボットテーブルを作成するマクロを作ったのですが、このシートを削除するマクロが分からなく困っています。 ピボットテーブルは毎回作成しては削除するので、シートの名前が2,3,4と、どんどん大きくなっていって、シート名が固定化できないんです。 シート名に関わらず、ピボットテーブルを削除するマクロをご教示願います。

  • エクセルVBAでピボットテーブルを作成しています。

    エクセルVBAでピボットテーブルを作成しています。 作成まではできましたが、以下2つのVBAの組み方が分からないのでおしえてください。 【質問1】 ピボットテーブルの作成先を指定できるか? 例えば、予め準備したシートに作成することは可能でしょうか? VBAのどこを触ったら良いか分かりません。 【質問2】 作成されたピボットテーブルの列を、見出しの準備された別シートへ、それぞれ流し込むことはできるか? 例えば ピボットテーブルが以下のように作成されたとして、 A列  B列 購入額 総計 A社  1000 B社  2500 C社  800 予め用意した別シート(A~D列の見出しは固定)のB、C列にピボットのA、B列(最終行まで)をそれぞれ流し込みたいのです。 A列(コード) B列(購入額)  C列(総量)  D列(JANコード) 001      A社        1000      JAN1 002      B社        2500       JAN2 003      C社        800      JAN3 流し込んだ列を元にA、D列にはVLOOKをかける予定です。 何か良い案があれば是非、ご教授ください。

専門家に質問してみよう