• ベストアンサー

エクセル2010 値の検索と貼り付け

エクセル2010を使っています。 画像の様な Sheet2 があり、A列にたくさん文字が入力されています。 その中から、イニシャルテスト の文字を探し、該当セルのT列に Sheet3のT1~CD25を貼り付けたいと思います。 行数は10万行ほどありますので、負担の掛からない形で貼り付けできればと思います。 イニシャルテストの文字がA1に有れば、Sheet3のT1~CD25を Sheet2のT1に貼り付ける。 A27にも有りますので、Sheet3のT1~CD25をT27にも貼り付けます。 やりたいのは以上です、詳しい方、よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.2

こんな感じだと思いますが、 T1:CD25の範囲は25行あります、イニシャルテストの文字は25以上空いて存在するのでしょうか? Sub macro() Dim C As Range, A As String Set C = Range("A:A").Find("イニシャルテスト", LookAt:=xlWhole) If Not C Is Nothing Then A = C.Address Do Worksheets("Sheet3").Range("T1:CD25").Copy Range("T" & C.Row) Set C = Range("A:A").FindNext(C) Loop Until A = C.Address End If End Sub

gekikaraou
質問者

お礼

回答ありがとうございます。 ばっちりできました、助かりました。 仰る通り、25行以内には イニシャルテスト の文字は出現しませんでした、よってBAとさせて頂きます。 ありがとうございました!

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! ↓のコードを標準モジュールにコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim lastRow As Long Application.ScreenUpdating = False With Worksheets("Sheet2") .Rows(1).Insert .Range("A1") = "ダミー" lastRow = .Cells(Rows.Count, "A").End(xlUp).Row .Range("A1").AutoFilter field:=1, Criteria1:="イニシャルテスト" Worksheets("Sheet3").Range("T1:CD25").Copy Range(.Cells(2, "T"), .Cells(lastRow, "T")).SpecialCells(xlCellTypeVisible).Select Selection.PasteSpecial Paste:=xlPasteAll .AutoFilterMode = False .Rows(1).Delete .Range("T1").Select End With Application.ScreenUpdating = True MsgBox "処理完了" End Sub こんな感じではどうでしょうか?m(_ _)m

gekikaraou
質問者

補足

回答ありがとうございます。 早速試してみました。 お手数頂き、申し訳ないのですが、一つ目 A1にイニシャルテストの文字があり、それには貼り付けが出来るのでうが、その一つだけで終えてしまいます。

関連するQ&A

  • エクセル(2003)のコピーと貼り付けについて。

    エクセル(2003)のコピーと貼り付けについて、操作を自動化したいです。 VBA初心者です。 同じフォルダ内にAファイルとBファイルがあります。 Aファイルにはシート1からシート4まで有り、シート1とシート2にシート3と4を比較したデータを表示させています。 シート1とシート2はA1からG1まで項目として、A2からデータが表示されます。約20行程度、表示される行数は毎日変わります。 Bファイルにはシート1しかありません。A1からG1まで項目とし、A2からデータが表示されています。約100行。毎日変わります。 (Aファイルのシート1とシート2の表示されているデータを貼り付けていく為) Aファイルのシート1に表示されているデータ(A2から)を仮に20行としBファイルの101行目(入力されているデータのすぐしたの行)に貼り付け、Aファイルのシート2に表示されているデータ(A2から)を仮に20行とし、120行目に貼り付け。 毎日コピーする範囲や貼り付けをするセルが変わっていく、固定の範囲、セルではない。この作業を毎日、コピー貼り付けで操作しています。 この操作をラクにしたいです。 困っていることは、コピーする範囲が毎日変わってしまう。(行数が増減するため) 貼り付けるセルも変わってしまう、(行数が増減するため) 分かりずらい説明になっていましたら、申し訳ないです。 よろしくお願いします。

  • Excel 隣接しない列に値貼り付け

    Excel 隣接しない列に値貼り付け ※「Excel 隣接しない列に一発で値貼り付け」の書き直しです。 ある一定の書式にしたがって作成された20~30のシートのデータを1つのシートに集約しており(集約シートを含み全てのシートは同じデータ内です。)、データを集約した集約シートの「表A」は下記の添付画像左側のようになります。 やりたいことは、「表A」のB列、C列、D列、E列をある条件のもとに右側の「表B」のH列、J列、L列、N列に値の貼り付けを行いたいのです。 現在の作業工程は、C列の空白行は必要ないため(C列が空白=他の列も空白)C列に文字入力があるとチェックが入るA列のオートフィルターで、「○」のみ表示にし、B~E列を順にそれぞれ、2行目からデータが記載された最終行までコピーし 「表B」のそれぞれの箇所に値貼り付けを行っています。 この時の注意点として、A列のオートフィルタ利用のためC列には空白がありませんが、B、D、E列には空白が存在します。 データがある最終行以下の空白は必要ありませんが、データ間の空白には意味があります。(下記の図で示すと「B3、4」や「D3、4」) 現在の作業工程でも問題はないのですが、この作業は最初に記載した20~30のシートに記載されたデータの校正に使うため取りこぼしをしたくなく、不特定多数の方が簡単に使えるようにしたいので、どうにか作業工程を減らしたいと考えています。 よろしくお願いします。 ▼書式シート *シートの数は増減する。 *集約シートが参照するセルには、必ずデータが入力されているわけではない。 *入力データは全て数値ではなく文字である。 ▼集約シート *他のブックと共通使用なため、一部の式は他のブックへのコピーに対応する形である。 *空白セルを参照している場合に結果として返される「0」は、オプション設定で非表示にて対応 *「表A」の行長は増減する。 *貼り付け先「表B」の列は飛び飛びである。 ▼ちなみに「表A」に使われている計算式(実際とは一部変えています) ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} PC環境:Win XP / Excel 2003

  • Excel 隣接しない列に一発で値貼り付け

    Excel 隣接しない列に一発で値貼り付け 隣接する列に表示されたデータを、同じシートの隣接しない列に一発で値の貼り付けがしたいのですが、可能でしょうか?   A     B     C    D    E         1 チェック タイトル 名前1  名前2 説明 2 ○    野菜   人参   牛蒡  これは根菜類 3 ○          胡瓜       うり科の野菜です 4 5 ○    果物   バナナ  柿   暖色系の色です   G       H         I     J           K     …… 1 計算式   B列を値貼り付け 計算式   C列を値貼り付け  計算式  …… ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} *C列の空白の場合は全ての列が空白である(A列の式はそのため) *C列に文字がある場合のB、D、E列の空白には意味がある。 *コピーではなく値の貼り付けを行いたい。 *貼り付け左記の列は飛び飛びである。 *行の長さは可変する。 今までは、A列を「オートフィルタ」で「○」のみ表示させ、B-E列を1列づつH、J、L、N列へ貼り付けていました。マクロもいろいろ考えたのですが、初心者のため応用が出来ません。 関数でもマクロでも頑張ってトライしますのでお知恵を頂けますでしょうか。 PC環境:Win XP / Excel 2003

  • EXCEL VBAで複数のシートの中から該当値を検索する方法について

    すいません、EXCEL VBAで複数のシートの中から該当する値を検索する方法について教えていただきたいことがあります。      Sheet1              A列   B列  C列   1行  11  りんご  31  2行  12  バナナ  32  3行  13  みかん  33  4行  14  ぶどう  34   ・   ・   ・     ・        Sheet2              A列   B列  C列   1行  31  すいか  11  2行  32  レモン  12  3行  33  パイン  13  4行  34  ざくろ  14   ・   ・   ・     ・ というデータが入っているブックについて 「全部のシートを検索し、A列に11の値が入っているセルの行数及びその行のB列の値」 をSheet1のD1セルとE1セルにそれぞれ返す方法はどうしたらよろしいんでしょうか。 For Each を使うのではないかと思って色々やってみたのですが、どうも上手く作動してくれません。 よろしくお願いいたします。

  • Excel 別ブックの検索と貼り付け

    添付ファイルのシートが二つあります。 ※セルが一部表示されていませんが、都合上非表示にしてありますがご了承下さい。 申請書ファイルに確認というボタンを設置してあり、確認ボタンをクリックしたら以下の動作を行いたいです。 1.申請書ファイルAC27に入力されている値を台帳ファイルの台帳シートのB列から検索 2.台帳シートのB列に該当する値があったら、申請書ファイルのAL27の値を台帳シートのT列+該当した値と同じ行に貼り付け ※添付ファイルの場合、   申請書ファイルAC27の値:21-002   台帳ファイル:B8セルに該当する値あるので、T8セルに申請書ファイルのAL27の値を貼り付け 3.申請書ファイルのAL27の値を貼り付けている理由は申請書ファイルのAK27:AK29のセルの値がTRUEとなっている1列横のセルの値を貼り付けたいので、もしAK28がTRUEだった場合、AL28の値を台帳ファイルに貼り付け 上記のような事をVBAで行いたいです。 ・申請書ファイルのAC27セルの値はBOOK毎に代わります ・AK27:AK29の値は重複はありません。 ・台帳ファイルのB列の値は21-001、21-002のように1番づつ繰り上がって増えていきます。 説明が不十分だったり分かりにくい箇所があるとは思いますが、ご教示を頂きたくよろしくお願いいたします。

  • エクセルの「値の貼り付け」ボタンについて

    こんにちは いつもお世話になっています。  エクセルのテキスト形式での貼り付けについて教えてください。 ツールバーに「値の貼り付け」のボタンを作ってあります。エクセルで文字列が入ったセルをコピーして、別のセル上で「値の貼り付け」ボタンを押すと正常に効きます。  しかし、たとえばIEで文字列をコピーしてエクセル上で「値の貼り付け」ボタンを押しても何も反応がありません。編集-「形式を選択して貼り付け」でテキスト形式を選ぶと正常にテキスト形式で貼り付けされます。  HTMLデータではボタンが効かないということなのでしょうか。それとも、固有のトラブルでしょうか。原因、対策を教えてください。

  • Excelの値貼り付けについて

    Excelの値貼り付けについて   A列  B列 1   1 2       2 3   3 4       4 5   5 6       6 7   7 8       8 9   9 10      10 A列・B列の1~1000行にランダムに数字が入力されており、A列の値を残したままB列の数字をA列に追加したいです。 同じ行でA・Bどちらにも数値が入力されていることはありません、かならずどちらか一方です。 関数を使わないと出来ないでしょうか? 検索してみましたが、見つからないためどうか宜しくお願い致します。

  • EXCELマクロ 検索

    Excelマクロで 検索とその結果のコピーを行いたいのですが、全くの素人のためご教授願えればと思います。 Excel2002で 2つの表から共通する部分をKEYに付随するデータ抜き出したいと思っています。関数VLOOKUPを使えば簡単な作業かと思いますがVBAではそのVLOOKUPやFIND、それにLOOPなどの使い方が今ひとつ理解 できません。 具体例として 表1には A-Z列まで約1000行のデータが存在します。 表2は表1と同じシート上の直ぐ隣列AA-AK列まで表1より必ず多い行数のデータが存在します。また表1のA列にあるデータは すべて必ず表2のAA列に含まれます。 行いたい作業は、VLOOKUPのような検索で、表1A列と表2AA列に共通したデータがあった場合、表2の該当セルを基準としてALからBJ列セルに表1の該当行のデータB-Z列をすべてコピー貼り付けすることです。 A・AA列とも同列内では重複も空白もなくソートされています。 これら以外の列には同じValueのデータや空白が存在します。またデータ件数(行数)も表1・2とも一定ではなく都度変動します。 解りやすくご説明いただけると幸いです。宜しくお願いいたします。

  • エクセル マクロ 特定の文字の検索と貼り付け

    こんにちは、エクセル2010を使っています。 マクロでデータを抜き出したいのですが、詳しくないので教えて頂けませんか? Sheet2の A列に 【日付】 ←括弧は無し が入っていたら A~M列のその行から下に50行ほどを抜き出し Sheet3に上から順に貼り付けたいと思います。 仮に A1セルに 日付 と あったら、A1~Mの50を抜き出し貼り付けると言うことです。 一度貼り付けたら、A列に 日付の文字がなるなるまで繰り返したいと思います。 詳しいかた、よろしくお願いします。 ちなみに ボタンで実行します。

  • エクセルの貼り付けについて

    シート1には  A B 1あ い 2う  3え お という表があります シート2には  C 1か 2き  という表があります シート1の2行目はしばらく使わないので 非表示にして Cの列をコピーして貼り付けをしたところ 2行目に「き」と入力されてしまいました このきを3行目に表示させるコピー&ペーストの方法ありませんか? エクセル2016使用

専門家に質問してみよう