マクロを使用した選択セルの値のコピーについて

このQ&Aのポイント
  • 質問内容は、A1とB1の値をマクロで取得し、それを使用してD列の選択範囲を検索し、D2からG7までをコピーして別の場所に貼り付けたいというものです。
  • この操作を行うためには、A1とB1の値を取得する方法を知る必要があります。
  • 詳しい方がいらっしゃいましたら、簡単な方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

マクロを使用した選択セルの値のコピーについて

   A   B   C   D   E   F   G 1 10  15       9   23  33  55 2             10   33  44  56 3             11   44  55  57            4             12   55  66  76 5             13   23  77  87 6             14   33  88  88 7             15   45  99  99 8             16   55  21  56 9             17   66  45  76 10            18   77  52  54 質問です A1の値が10 B1の値が15 でA1とB1の値は各データによって異なって入力されています。 決まりとしては、 A1<B1で, 必ず、A1の値とB1の値はD列に存在します。 A1の値とB1の値をマクロで取得し、 D列でその選択範囲を検索し、D列の10~15の値の選択範囲で、 D2:G7までをうまくコピーし、違う場所に張り付けしたいのです。 もし、詳しい方がいらっしゃいまして、簡単にできる方法がありましたら、 ご指導の程お願い致します。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>『型が一致しません』とデバッグが生じました。 A1の値またはB1の値、またはどちらも見つからないまま Range(Cells(myR1, "D"), Cells(myR2, "D")).Resize(, 4).Copy Range("J1") を実行すると、そのようなエラーが出ます。 Sub Test()   Dim myR1 As Variant, myR2 As Variant   myR1 = Application.Match(Range("A1").Value, Range("D:D"), 0)   myR2 = Application.Match(Range("B1").Value, Range("D:D"), 0)   If IsError(myR1) Then     MsgBox "A1セルの値 " & Range("A1").Value & " がD列に見当たりません。"     Exit Sub   End If   If IsError(myR2) Then     MsgBox "B1セルの値 " & Range("B1").Value & " がD列に見当たりません。"     Exit Sub   End If   '検索範囲をJ1セルに貼付   Range(Cells(myR1, "D"), Cells(myR2, "D")).Resize(, 4).Copy Range("J1") End Sub

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>決まりとしては、A1<B1で,必ず、A1の値とB1の値はD列に存在します。 Sub Test()   Dim myR1 As Variant, myR2 As Variant   myR1 = Application.Match(Range("A1").Value, Range("D:D"), 0)   myR2 = Application.Match(Range("B1").Value, Range("D:D"), 0)   '検索範囲をJ1セルに貼付   Range(Cells(myR1, "D"), Cells(myR2, "D")).Resize(, 4).Copy Range("J1") End Sub

chi-pan-kun
質問者

お礼

ありがとうございます。早速実行してみましたが、 Range(Cells(myR1, "D"), Cells(myR2, "D")).Resize(, 4).Copy Range("J1") のところで、『型が一致しません』とデバッグが生じました。 どのように対処したらよろしいでしょうか??

関連するQ&A

  • VBAでのデータの値を選択する事について

      A   B   C   D   E   F   G 1 10  15       9   23  33  55 2             10   33  44  56 3             11   44  55  57            4             12   55  66  76 5             13   23  77  87 6             14   33  88  88 7             15   45  99  99 8             16   55  21  56 9             17   66  45  76 10            18   77  52  54 質問です A1の値が10 B1の値が15 でA1とB1の値は各データによって異なって入力されています。 決まりとしては、 A1<B1で, 必ず、A1の値とB1の値はD列に存在します。 A1の値とB1の値をマクロで取得し、 D列でその選択範囲を検索し、D列の10~15の値の選択範囲で、 D2:G7までをうまくコピーし、違う場所に張り付けしたいのです。 もし、詳しい方がいらっしゃいまして、簡単にできる方法がありましたら、 ご指導の程お願い致します。

  • マクロを使い選択範囲を次々と変えて並べ替えたい

    マクロ作成は 範囲選択 A4~G12 マクロ記録開始 並べ替え E列 降順 マクロ記録終了 でマクロを作成し 次に範囲選択 A14~G22でこのマクロを実行すると範囲選択が前と同じA4~G12が並べ替えられてしまいます。 マクロの中を見ると範囲選択 A4~G12が書かれてしまっています。 次のように、選択範囲を次々と変えて並べ替えるマクロを作りたいのですがお教え願います。 1. 範囲選択 A4~G12を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 2. 範囲選択 A14~G22を選択 マクロ実行で選択範囲をE列の値で降順並べ替える 3. 範囲選択 A28~G32を選択 マクロ実行で選択範囲をE列の値で降順並べ替える

  • 可視セルへのコピー マクロ

    次のように、可視セルから可視セルへコピーしたいです。 (元の状態) A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 aさん 済    150 bさん 済    200 cさん 未    150 dさん 済    100 eさん 未    120 fさん 済    250 gさん 未    300 hさん 未    210 この状態をB列で支払が済んでるかどうかでフィルターをかけて ABC列をコピーし、DEF列に可視セルのみコピーして A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 cさん 未    150  cさん 未    150 eさん 未    120  eさん 未    120 gさん 未    300  gさん 未    300 hさん 未    210  hさん 未    210 フィルターをはずすと A   B     C     D   E   F 名前  支払  金額  名前 支払  金額 aさん 済    150 bさん 済    200 cさん 未    150   cさん 未    150 dさん 済    100 eさん 未    120   eさん 未    120 fさん 済    250 gさん 未    300   gさん 未    300 hさん 未    210   hさん 未    210 と、未払いの人だけ、D列以降にもコピーされてる状態にしたいのです。 可視セルへのコピーはマクロを組む必要があると聞いて見てるのですが、 私が実現させたい可視セルへのコピーとまた違うプログラムでした。 どなたかよろしくお願いします。

  • マクロ セルの値に応じてセルに色を付ける

    マクロを利用して、セルの値に応じてセルに色を付ける方法について教えて下さい。 A列の値がA~Dの場合、A列~最終列のセルをそれぞれの色で塗りつぶしたいと思っております。 アドバイスの程、よろしくお願い致します。

  • Excelマクロでセルの値を他のセルに表示する方法

    Excelマクロがよく分からので教えてく下さい。 Excelで次のように表を作成します(添付画像参照)。 ・A列・・・連番 ・B列、C列、D列・・・それぞれに任意の値 ・E列・・・G列の関数で得た値をE列に返す。 ・G列に関数(=B2&C2&D2) G2で得た値を、E2に返す方法として 以下のマクロで出来ることが調べて分かりました。 Sub 取得() Dim namae As String namae = Range("G2").Value Range("E2").Value = namae End Sub ですが、G列の値全てをE列全てに返す場合のマクロの作成方法がわかりません。 どなたか詳しい方がいましたら、ご教示願います。

  • 検索結果の値を返すマクロ

    以下のような表で列「A」にある値を「C1~I1」より検索し 一致するものがあれば、列名を「B列」に返すマクロを作りたいのですが、どのようにマクロを記述したら良いでしょうか? A  B  C  D   E   F   G   H   I       10 20 30 40 50 60 80 10 20 10 50 60 勉強してみたのですが、変数をどのように使っていいか判りません。 ご助言いただければと思います。

  • 別のエクセルファイルの値をコピーをしたいです

    別のエクセルファイルの値をコピーをしたいです。 現在、仕事でファイルAにファイルBの値をコピーペーストをする作業を行っております。 しかし、量が多いのでいちいちファイルを開いてコピーして貼り付けという作業は時間がかかるのでマクロでやりたいと考えています。 そこで教えてほしいのですが、以下のような操作をマクロでするにはどうしてらよいのでしょうか? 1.ファイルAの列範囲F~J、行は9から下にファイルBの値をコピーしたい。 2.コピーするファイルBの値の範囲は、列E~I・行は1から下。 3.コピーするファイルBの行は毎日更新されるため、行の範囲は不特定です。 つまりは 昨日のファイルBの行は10まであり、マクロを実行するとファイルBのE1~I1からE10~I10の値がファイルAのF9~J9から下にコピーされる。 今日のファイルBの行は4まであり、マクロを実行するとE1~I1からE4~I4の値がファイルAのF9~J9から下にコピーされる。 という操作をマクロで実行したいと思っております。 また、ファイルBの名前も不特定のため、ファイルはダイアログで指定し、指定したファイルのE1~I1から下の値をコピーできるようにしたいです。 毎日の作業ですので、これが出来れば効率はぐっと上がります。 わかる方、どうか回答宜しくお願いいたします。

  • VBAにて範囲選択およびコピーの方法について

    連休中失礼いたします。VBA初心者です。 VBAにて範囲選択の方法およびコピーの方法について教えてください。 (1)範囲選択の方法  まず最初の条件としてD列における値が1.0以上(数値表記は少数点)の場合に限り、 それに該当する行をコピー(A~D列)したいのですが… この方法をVBAの式で表したいのです。  範囲選択として求めたい範囲は、下表で行くとRange(”A3:D6”)の範囲を選択したいのです。  ※D列における値が1.0以上の条件の指定までは、何とかできてそうな感じなのですが、   その条件を満たす、範囲選択がうまくできません。 (2)コピーの方法  (1)で選択した範囲を、選択sheetを変更して貼り付けたいのですがどのようにしたらよろしいでしょうか??       A列     B列     C列      D列 1行    13     10      10      0.5 2行    10     8       7       0 3行    11     9       7       1.0 4行    9      25      18      1.5 5行    8      43      23      1.5 6行    7      12      23      1.0 7行    6      23      43      0.5  8行    15     23      54      0 … …

  • エクセル/マクロ/セルの選択について(初心者です)

    最近マクロ機能を使い始めた初心者です。 マクロの記録を使い、ちょっとだけVBEで触っています。 以下のような場合、なんと記述すればよいでしょうか? 詳しい方にはとても簡単だと思われ、お恥ずかしいですが、 教えていただけましたら幸いです。 【実現したい内容】 あるセル範囲を指定している時に、実行すると、 指定していた範囲の行の、A列のみが選択される ※例えばB1:B3、またはC1:C3、またはD1:E3 のをセル範囲を選択している時に、マクロを実行すると いずれの場合もA1:A3を選択する。 表現が分かりにくいでしょうか…?

  • マクロを使ってセルをコピー

    マクロ初心者です。 質問内容が分かりづらいかと思いますが、どうぞよろしくお願いします。 あるセル(例えばA1とします)の値を列に876個(A877まで)コピーするというマクロを作りたいのですが、どうしても出来ません。 参考HP等ありましたら、お願いします。

専門家に質問してみよう