• ベストアンサー

マクロ 貼り付け先のセルを変更するには?

エクセル2000です。 sheetAのセルC3~C10をコピーしsheetBのセルD3~10に貼り付けるマクロを使用しています。 sheetBの貼り付け先の表を変更し、セルE3~10に変更したいです。 この場合、VBAの貼り付け先のD3~10をE3~10に書き換えるしか方法はないでしょうか? 同様の貼り付け件数が多く、一つ一つ作業をするのが非常に手間で、一括で行える方法を探しています。 よろしくお願いします。

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

  • ベストアンサー
  • m_and_dmp
  • ベストアンサー率54% (974/1797)
回答No.1

全容が分からないので見当違いかもしれませんが、 コピー&ペーストで実行しているならつぎのように記述されていると思います。 このモジュールのDをEに効率的に書き換えるには、編集メニューの検索と置換を使用すると良いと思います。 VBエディターの中で置換を行ってほかのマクロを書き換えてしまうといけないので、一度メモ帳にコピーしてから実行し、戻すと安心でしょう。 Sub Macro1() Sheets("Sheet1").Select Range("C3:C9").Select Selection.Copy Sheets("Sheet2").Select Range("D3:D9").Select ActiveSheet.Paste End Sub 将来のことを考えると、読み込みセル/書き込みセルを変数として扱うとフレキシブルになります。つぎに例として考え方だけあげておきます。 セルを変数で扱う時は Range("A1:B1")形式はマクロで扱いにくいので、 Range(Cells(R1,C1),Cells(R2,C2)) に変更します。 この例では、 シート1のC3~C9をシート2のD3~D9へ シート1のD3~D9をシート2のE3~E9へ シート1のE3~E9をシート2のF3~F9へ ・ ・ ・ へコピーします。 Sub Macro2() R11 = 3 C11 = 3 R12 = 9 C12 = 3 R21 = 3 C21 = 4 R22 = 9 C22 = 4 For I = 0 To 9 Sheets("Sheet1").Select Range(Cells(R11, C11 + I), Cells(R12, C12 + I)).Select Selection.Copy Sheets("Sheet2").Select Range(Cells(R21, C21 + I), Cells(R22, C22 + I)).Select ActiveSheet.Paste Next I End Sub コピー先セルを変更したい場合は R21, C21, R22, C22と変更します。

関連するQ&A

  • sheet1セルA1のデータ切り替えについて

    Excel2010に3つのシートsheetA、sheetB、sheetC があります。 それぞれセルA1のデータは,sheetAのA1=ブランク、sheetBのA1=b、sheetCのA1=c とします。 この状態で、 sheetBがActiveの時に、sheetAのA1=b sheetCがActiveの時に、sheetAのA1=c になるような関数、もしくはマクロを組み込みたいと思います。 どのようにしたら実現できますでしょうか? よろしくお願いします。

  • 【エクセル】結合したセルからのリンクについて

    教えてください! エクセルのワークシート間のリンクについてです。 ワークシート(SheetA)内に結合したセルを作ってその中で計算式を作っているのですが、その計算された値を他の作業ワークシート(ここでは仮にSheetBとします)にリンクさせようとすると、SheetBのセル内に ='SheetA'!C1301:I1304 というように表示され、確定すると#VALUEとなってしまいます。また、リンク先のセルを選択するだけで固定された状態('SheetA'!$C$1301:$I$1304)になってしまいます。 毎回、:以降を消去して値をリンクさせているのですが、そのようなわずらわしい作業を行わずにリンクをさせたいのですがどのようにすればいいのでしょうか?設定で変更ができるようであればその方法を教えて下さい。 よろしくお願いします!

  • エクセル マクロ

    エクセルを使って12桁の数字をsheet A と sheetBとの違いを調べる、表?をつくりたいのですが、マクロを使えば簡単と聞きました、マクロは全くわからないので、マクロを使わなくてもいいのですが、良い方法はありますか?  例えば エクセルの sheet A に 12桁の数字を50, sheet Bに12桁の数字を50, その中からsheetAにはあってsheetBには無いもの、sheetAには無くてsheetBには有るもの を色をつけてわかるようにしたいと思っています。 みなさんよろしくお願いいたします。

  • エクセルで入力済みのセルのみ見つけて・・

    エクセルで入力済みのセルだけを見つけ出して、 指定した場所に並べる作業をマクロで1発で出来るようにしたいのですが、その方法を教えてください。 シートが37シートあります。(sheetA1~sheetA12,sheetB1~sheetB12,sheetC1~sheetC12,sheet37) それぞれセルC5からC20まで数値が入っていますが、 最終行はC20とは限りません。(sheet37はまとめるためのシートで空白) C15が最終行の場合もあれば、C18が最終行の場合もあります。 各シートそれぞれ最終行が違います。(列は同じですスタートもC5です) 各シートのC列の入力済みのセルの数値をsheet37のB1セルから順番に縦に並べたいのです。 A,B,Cのシート順にC列に入力された数値を縦に並べます。 空白は無しで詰めて並べます。 これを1回の作業でできるマクロを教えてください。 それから入力済みの最終行を見つけ出すマクロの部分を表示して頂けるとありがたいです。 宜しくお願いします。

  • 離れたセルのリンク貼り付けを行うためのマクロについて

    ブック(1)のシート(1)にある複数の離れたセル(B2,D2,C3,F3,B4:F4)をコピーし、別ブックのシート(1)のセル(B2,D2,C3,F3,B4:F4)へリンク貼り付けを実行するためのマクロを教えてください。 なお、ブック(1)とブック(2)はイントラの共有フォルダ上の同一階層に置いてあります。 このブック(1)と同一フォーマットのブックが複数存在し、上記同様にブック(2)の離れたセルをコピーして別ブックのシート(2)のセルへリンク貼り付け。 続いて、ブック(3)の同じセルをコピーし別ブックのシート(3)へリンク貼り付けと言うように、同じセルをコピーし別シートの同じセルへリンク貼り付けの作業を繰り返し行います。 まったく同じ位置のセルをコピー&リンク貼り付けを繰り返し行いたいので、マクロを使って自動実行させたいと思っています。 離れたセルのリンク貼り付けは出来ないのかもしれないですが、アドバイスを頂けると助かります。 宜しくお願い致します。

  • エクセルのデータ移動(マクロ使用)

    エクセルのSheetAを使用して入力画面を作成し、そのデータをSheetBやSheetCへリンクさせて印刷を行っています。1件ごとの入力になるので、データが残りません。このSheetAのデータを別のSheetDか別のファイルへ行ごとの横一直線という形式で残したいのですが、どうすればよろしいでしょうか? また、反対に移動したデータを戻す場合などどうしたらいいのでしょうか? マクロを利用すればいいように思うのですが、マクロは印刷程度の簡単なマクロの知識しかありません。 もしも、何か方法があるようでしたら、いろんな応用が利きそうなので、今後に向かって幅が広がりそうなので、是非詳しい方お願いします。 <例> 1つめのデータをSheetAへ入力 SheetA セルA1 h16.12.1                  B2 ○○商事                           C3 △△-□□          ↓(データー移行) SheetD セルA1 h16.12.1 B1 ○○商事 C1 △△-□□  (この間にSheetAのデータはすべて削除) 2つめのデータをSheetAへ入力 SheetA セルA1 h16.12.3                 B2 ●●販売                            C3 ▲▲-■■          ↓(データー移行) SheetD セルA1 h16.12.1 B1 ○○商事 C1 △△-□□       A2 h16.12.3 B2 ●●販売 C2 ▲▲-■■

  • excelのオートフィル

    すいません、いろいろと調べてみましたがわからなかったので質問させてください。 あるシート(sheetA)に集計データがあり、それを別シート(sheetB)に表示したいとき、 シート名を固定し、参照するセル番号を10刻みで増やしたい場合、オートフィルで可能でしょうか? 具体的には、sheetAのAE4~AE242およびにランダムな数値データがあった際に、 ・sheetBのB3~B26にsheetAのAE4,AE14,AE24・・・と十刻みでコピー ・sheetBのC3~C26にsheetAのAE5,AE15,AE25・・・と十刻みでコピー ・sheetBのD3~D26にsheetAのAE6,AE16,AE26・・・と十刻みでコピー ということをしたいと思っています。 拙い文章で恐縮ですが、どなたか教えていただけると幸いです。 よろしくお願いいたします。

  • エクセルで特定の複数セルを選択し、別ブックへ一度に「リンク貼り付け」するマクロは?

    エクセルで作成したファイル(1)で、特定の複数セル(連続していないセル)を選択し、まったく同じフォーマットの別ふぁいる(2)へ一度に「リンク貼り付け」する方法があれば教えて頂きたいと思っております。 【BOOK(1) - シート】をコピー ---------------------------------------------------------------- ----------------------   A    B C      D     E FG   H  1 NO    名前   ランク  概要    備考 2 11   あああ      A     ****   ○○○  3 55     いいい     B     ****   △△△   4 77    ううう     C     ****   □□□     ---------------------------------------------------------------- ---------------------- 【BOOK(2) - シート】へリンク貼り付け ---------------------------------------------------------------- ----------------------   A    B C      D      E FG   H  1 NO    名前   ランク  概要    備考 2 11   あああ          ****   3  4       ううう     C     ---------------------------------------------------------------- ---------------------- 列BとC、列EとFとGはセルの結合をしております。 BOOK(1)のセル「A2」「BC2」「BC4」「D4」「EFG2」だけをコピーし、 BOOK(2)の同一セルへリンク貼り付けを行う。 コピーするセルが飛び石のように離れており、2つ以上のセルが結合している列があったりします。 複数のBOOKがあり、すべてのBOOKで上記と同一セルを「リンク貼り付け」する場合に 一度にまとめて実行できるようなVBAやマクロで実現可能な方法があれば教えて下さい。 (勉強も兼ねているため、マクロ記述に補足説明があると助かります) 現在の所、連続しているセルはまとめてリンク貼り付けができるのですが、離れているセルは1つずつ選択して貼り付けております。 この別ファイルへのリンク貼り付け作業が大量にあり、時間がかかるため大変困っております。 御手数お掛け致しますが、何卒よろしくお願いいたします。

  • Excelのマクロで、セルの背景色を変更できますか?

    WinXP、Excel2002 です。 VBAでマクロを作成中なのですが、 条件に当てはまるセルの背景色を変更させたいのですが、可能でしょうか? フォントカラーの変更や、罫線を引くことはできたのですが、 背景色を変更する方法がわからず困っています。

  • エクセルマクロでデータの検索と転記方法

    エクセル2000です。 sheetAの 10行~165行に表Aがあります。 途中に、空白行や小計行もかなりあります。 C列のコード(文字列、数値両方あります)をキーにして、SheetBの4行目から91行目までの表B(A列にコードがあります)のB列の数値を、sheetAの10行~170行のD列に転記したいのです。sheetAの表の小計行のC列は空白です。SheetBの表Bのコードは、sheetAの表Aのコードの一部しかありません。ですから、sheetAの表AのコードがSheetBの表Bになかったらそこは何も転記しません。 わかりづらい説明かと思いますが、マクロの記述をお教えいただければ幸いです。

専門家に質問してみよう