• ベストアンサー

エクセル2013 マクロをご教示ください

Sheet1 4行目に見出し。 5行目A列からU列までデータが入力されています。 中には空白セルもあります。 1行目から4行目迄はロックされています。 5行目以降の、あるセルをアクティブにすると、 該当行のC列からS列迄を Sheet2のA列を先頭に 5行目にコピペするには どうしたら宜しいでしょうか? Sheet2も4行目が見出しです。 Sheet1でのアクティブセルは 複数の場合もあります。 ただし、同じ行でセルを複数アクティブにしても Sheet2への貼り付けは1行とします。 よろしくお願いします。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

シート1のシート名タブを右クリックしてコードの表示を選ぶ 現れたシートの記載内容を全て消去してから、下記をコピー貼り付ける private sub Worksheet_SelectionChange(byval Target as excel.range)  on error resume next  worksheets("Sheet2").rows("5:" & rows.count).clearcontents  application.intersect(selection.entirerow, range("C5:S" & rows.count)).copy _   destination:=worksheets("Sheet2").range("A5") end sub ファイルメニューから終了してエクセルに戻る 5行目以下のセルを選択する。 #まだ何か違う事がしたいのでしたら、一度ご相談は解決で閉じてから、ホントにヤリタイ事を全部書いて新しいご質問として投稿し直して下さい。

maron1010
質問者

お礼

ありがとうございます。 もう少し、質問内容を纏めてから再投稿します。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

#複数のセルを選択したとき、その中で一つだけ、逆反転になってるセルをアクティブセルと言います。 #わざわざ複数セルが選択されてる状況をご相談で想定するのであれば、当然複数行に渡って選択されている状態も考慮すべきです。 >5行目以降の、あるセルをアクティブにすると、… シート1でシート名タブを右クリック、コードの表示を選ぶ 現れたシートに下記をコピー貼り付ける private sub Worksheet_SelectionChange(byval Target as excel.range)  if activecell.row < 5 then exit sub  application.intersect(activecell.entirerow, range("C:S")).copy _   destination:=worksheets("Sheet2").range("A5") end sub ファイルメニューから終了してエクセルに戻る 5行目以降のセルをアクティブにする。

maron1010
質問者

補足

>当然複数行に渡って選択されている状態も考慮すべきです。 稚拙な文章ですみません。「アクティブセル」とは、選択されているセルのつもりでした。 なので、下記文内の「アクティブセル」を 「選択セル」に置き換えてください。 >Sheet1でのアクティブセルは >複数の場合もあります。 >ただし、同じ行でセルを複数アクティブにしても >Sheet2への貼り付けは1行とします。 または、上記条件とは異なりますが ご教示頂いたマクロは常に Sheet2の5行目に貼り付けられますが Sheet1でのアクティブセル該当行がマクロ実行後 6行目、7行目・・・と追加されるにはどうしたら宜しいでしょうか? ただし、Sheet2への貼り付け内容が同じだった場合は 注意喚起のため メッセージで 「重複データが存在します」を表示したいです。

関連するQ&A

  • 【再】エクセル2013 マクロをご教示ください

    Sheet1で選択しているセルの行をSheet2に転写したいです。 Sheet1とSheet2の4行目に見出し。 Shet1にはA~U列までデータがあります。(途中空白セルの場合もあり) Sheet1の5行目以降の、あるセルを選択してマクロを実行すると Sheet1のC~S列までをSheet2のA~Q列へコピペしたいです。 Sheet1は H列に必ずデータがあるので それらを最終行の判断基準とします。 Sheet1での選択セルは複数の場合もあります。 ただし、同じ行のセルを複数選択しても Sheet2への貼り付けは1行とします。 マクロを実行する度に、Sheet1での選択セルの該当行が Sheet2へ追加されるようにしたいです。 (Sheet2へコピペされたデータは残します) また、Sheet2への貼り付け内容が同じだった場合は 注意喚起のため メッセージで 「重複データが存在します」を表示したいです。 重複の判断基準はSheet2の B、D、F列とします。 宜しくお願い致します。

  • エクセル2013 マクロ ご教示ください

    1行目は見出しです。 Sheet1のV列にSheet2のF列を反映させたいです。 条件は Sheet1のD列とN列とF列を検索値として Sheet2のB列とG列とE列とが合致したら Sheet1のV列にSheet2のF列を反映させたいです。 また、Sheet1のV列に反映させた後 Sheet2の該当行は削除したいです。 もしもSheet2に該当値が無かったらSheet1のV列には ナシ の文字が入力されるようにお願いします。 Sheet1もSheet2も日々、最終行が違います。

  • エクセル マクロ VBA

    エクセルのマクロについて質問です。 『集計』というブックの『集計開始』というシートに     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 コメント  空白     空白   3行目 空白   空白     空白 4行目 商品名  支店     個数  5行目 空白   空白     空白 6行目 空白   空白   コメント1 7行目 空白   空白     空白 8行目 空白   空白   コメント2 9行目以降    上記のデータ(見出しを除く)の繰り返し というデータが入っています。 B列の中に『AAA』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 C列の中に『B』という文字が含まれていたら、そのセルを空白に置換し、 含まれていなかったら、そこで処理がとまったりエラーが出たりしないで次のステッップへ進み、 (今は、手作業で編集→置換→検索する文字列の中に『B*』と入力し、 置換後の文字列を空白にしてすべて置換ということをやっています。)                            ABC列(データーの入っている行まで)の空白を含む行を一括削除し、 以下のような形にしたいのです。     A列    B列     C列 1行目 見出し  見出し   見出し      (商品名)  (支店)  (個数)         2行目 商品名  支店     個数  3行目 商品名  支店     個数          ・         ・ このようにするマクロ文はどのようになりますでしょうか?

  • エクセル2013 マクロ ご教示ください

    1行目は見出し Sheet1 A列に品番 B列に個数 C列に注文日 D列に納入日 Sheet2 A列に品番 B列に品が納入される週単位の数値 (1、2、4・・・等) Sheet1のA列~C列が入力された時、 Sheet2のA列を参照してSheet1のA列と合致した品番が Sheet2で見つかったら Sheet1のD列 = Sheet1のC列 * Sheet2のB列の数値x7日 を、表示させたいです。 合致する品番が無い場合は 該当なし と表示させたいです。 どうか宜しくお願い致します。

  • エクセルのマクロ(値を検索して別シートにコピー)

    エクセルで下記のマクロをご教示いただけるでしょうか。 1.Sheet1のアクティブセルの右に5つ、下に1つのセルを起点として下方向に6セル分をコピー (例)Sheet1のアクティブセルがA2だとすると、F3~F8をコピー 2.Sheet1のアクティブセルの値(yy/mm/dd形式の日付)と同じ値のセルをSheet2のA列から検索し、該当セルの右に2つ分のセルに行列を入れ替えて値のみをペースト (例)Sheet1のアクティブセル(A2)の値がSheet2のA4セルにあるとすると、Sheet2のC4に行列を入れ替えて値のみペースト 3.Sheet1のアクティブセルの値がSheet2のA列に2つ以上あれば、「同じ日付が複数あります。」というメッセージを表示

  • エクセルのマクロで、複数のシートで、指定のアクティブセルに移動する方法

    エクセルの複数のシートがあるファイルで、指定の位置にアクティブセルを移動するマクロを組むにはどうしたらよいでしょか。 複数のシートがあります。 アクティブセルが各シートばらばらの位置だと見栄えが悪いです。 そこで B列の一番下から「END+↑」でとんだ位置で止まる。 複数のシート(20以上)を同じ作業 最後に一番左端のシートでをアクティブシートにして終了 ※A列は空白行のため、必ず埋まっているB列を基準にしたい マクロを教えたください。

  • 繰り返し処理のマクロ

    下記のマクロをご教示いただけるでしょうか。 ①シートAのアクティブセルをコピーし、シートBのE1セルにペースト ②マクロ「結果反映」を実行 ➂シートAのアクティブセルを1行下に移動 ①から➂をアクティブセル=空白セルになるまで繰り返し

  • エクセル2003のマクロ作成の件

    同一連続セルにあるグループの中で、D列に「完了」があれば、F列に「4」を入力し、その同一連続セル内で、検索し、D列の対応中を探します。その「対応中」の先頭が、完了にした担当者と同じであれば、「9」を。違えば、「0」を。完了は、同一セル内の最後にきていない事もあります。該当しない時や単一セルの時は、何もせず、空白のままにします。A列には、空白行がなく、3万行ほどあります。特定文字を探し、その1行上を探すなどののマクロはできるのですが、条件が重なると、作成が出来ません。今まで、手動で、数値を入れていたのですが、マクロで作成出来ないものでしょうか?マクロ初心者です。

  • エクセルマクロで条件に該当する数値を探す

    エクセル初心者です。 シート1のA1~A18に1~18の数値がランダムに入っています。(重複した値は無し) シート2の3行目C3~T3にも1~18の数値がランダムに入っています。(空欄あり、重複した数値は無し) シート2の2行目C2~T2までは左から順に1~18の数値が入っています。(順位表示) 以上の条件下で下記の作業をマクロで実行させる式を教えてください。 シート1のA1~A18の値と同じ値を、 シート2の3行目C3~T3の中からどのセル(列)に入っているかを確認して、さらに該当する列の2行目C2~T2の値を、シート3の1行目A1~R1に表示させる。 例:シート1のA1=3、A2=2、A3=1の時、 シート2のC3=3、D3=1、E3=2でした。 シート2のC2=1、D2=2、E2=3です(この行の数値は毎回同じ) 上記の時シート3にはA1=1、B1=3、C1=2となります。 *シート1のA列A1~A18とシート3の1行目A1~R1の位置関係はリンクしています。(列→行) シート1 A列 1 3 2 シート2   A列 B列 C列 D列 E列 2行見出し見出し1  2  3 3行見出し見出し3  1  2 シート3 A列 B列 C列  2  1  3 ご理解頂けたでしょうか? 初心者ですので分かりやすい回答を宜しくお願いいたします。

  • エクセルのマクロで質問です

    B列に氏名の頭文字(カタカナ)1文字があいうえお順に1000行くらい並んでいて、例えば「カ」の先頭のセルをアクティブセルにするマクロの組み方を教えていただけますでしょうか? よろしくお願いします。

専門家に質問してみよう