• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:次のマクロコードがわかりません)

マクロコードの使い方がわかりません

このQ&Aのポイント
  • マクロコードを使用して、指定の列の任意のセルで「1」と入力することで、その行の左隣の5つのセルのデータをコピーする方法がわかりません。
  • 質問文章で説明されているように、マクロコードを利用して、指定の列の任意のセルに「1」と入力することで、同じ行の左隣の5つのセルのデータを自動的にコピーする方法が知りたいです。
  • マクロコードを使って、指定した列の任意のセルに「1」と入力すると、その行の左隣の5つのセルのデータがコピーされる方法が分かりません。

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

  • ベストアンサー
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.4

こんにちわ 一箇所くらい自分で考えてほしかったのですが Cells(1, 1).PasteSpecial Paste:=xlPasteAll  ↓ Target.PasteSpecial Paste:=xlPasteAll

kokorororo
質問者

お礼

大変感謝いたします。ありがとうございました(._.)

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

こんなのでどうでしょう Private Sub Worksheet_Change(ByVal Target As Range)   With Target     If (.Count = 1) * ((.Column - 23) Mod 6 = 0) * (.Column >= 23) Then       If .Value = 1 Then Range(Target, .Offset(0, 4)) = Range(.Offset(0, -6), .Offset(0, -2)).Value     End If   End With End Sub

kokorororo
質問者

お礼

ご回答ありがとうございます。やりたいことと一致しています! しかしながらQ~U、W~AA、AC~AGまでは1と入力すればコピーできたのですが、 AK~AO、AQ~AU、AW~BA 、BE~BIはコピーができませんでした。 おそらくAGまでは規則的に並んでいるのですが、AGとAKの間は列が3つあるため そこからはずれが生じてしまいます;(わかりにくくて申し訳ありません;)

全文を見る
すると、全ての回答が全文表示されます。
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.2

#1です。 こちらのほうが解り易いかな Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Target.Count <> 1 Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub If Target.Value <> 1 Then Exit Sub If Intersect(Target, Range("W:W, AC:AC, AK:AK, AQ:AQ, AW:AW, BE:BE")) Is Nothing Then Exit Sub i = Target.End(xlToLeft).Column - 5 Debug.Print Target.Address & " " & Target.End(xlToLeft).Column If i < 0 Then Exit Sub Cells(Target.Row, 1).Offset(0, i).Resize(1, 5).Copy Application.EnableEvents = False 'ここにコピーしたものをどうするかを記述する 例↓ Cells(1, 1).PasteSpecial Paste:=xlPasteAll Application.EnableEvents = True End Sub

kokorororo
質問者

お礼

ご回答ありがとうございます。こちらのコードを使わせていただくとすべて、A1セルからE1セルに コピーされてしまうため、利用できませんでした;

全文を見る
すると、全ての回答が全文表示されます。
  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.1

こんにちわ シートイベントは、理解されているものとして回答します。 そうでなかったら、補足をお願いします。 Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Target.Count <> 1 Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub If Target.Value <> 1 Then Exit Sub If Intersect(Target, Range("W:W, AC:AC, AK:AK, AQ:AQ, AW:AW, BE:BE")) Is Nothing Then Exit Sub i = Target.End(xlToLeft).Column - 4 ' Debug.Print Target.Address & " " & Target.End(xlToLeft).Column If i < 1 Then Exit Sub Target.Offset(0, i - Target.Column).Resize(1, 5).Copy Application.EnableEvents = False 'ここにコピーしたものをどうするかを記述する 例↓ Cells(1, 1).PasteSpecial Paste:=xlPasteAll Application.EnableEvents = True End Sub

kokorororo
質問者

お礼

何度もご丁寧にありがとうございます;上記と同じ結果となったので申し訳ないです;

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • ある条件を加えてもマクロをちゃんと動かしたい

    Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Target.Count <> 1 Then Exit Sub If Not IsNumeric(Target.Value) Then Exit Sub If Target.Value <> 1 Then Exit Sub If Intersect(Target, Range("W:W, AC:AC, AQ:AQ, AW:AW")) Is Nothing Then Exit Sub i = Target.Column - 6 ' Debug.Print Target.Address & " " & Target.End(xlToLeft).Column If i < 1 Then Exit Sub Target.Offset(0, i - Target.Column).Resize(1, 5).Copy Application.EnableEvents = False Target.PasteSpecial Paste:=xlPasteAll Application.CutCopyMode = False Application.EnableEvents = True Target.Select end sub 上のコードはW列、AC列、AQ列、AW列に1と入力すると、入力セルから みて6つ左から5つのデータがコピーされるマクロです。ここでAK列、BE列からみて8つ左から5つのデータをコピーする 条件を付加したいのですがうまくいきません。 If Intersect(Target, Range("AK:AK, BE:BE")) Is Nothing Then Exit Sub i = Target.Column - 8 ' ↑ このコードを追加する感じです。  この条件を付加しなければうまく動くのですが、付加して何とか動かしたいと考えています。 何か良い方法があればおしえていただけると幸いです。

  • 同じ行の内容をコピーするマクロが作れません。。

      E列      F列 G列 H列 I列  …    Q R S T U    …    W X Y Z AA  日本 太郎   昭和 25  8  16  …                 …  英国 花子   平成  8   3  23  …                 … 上記のように、E列~I列に基本情報として家の主の誕生日が入力されているシートがあります。 さらに同じ行には主の家族の生年月日を入力するケースもあるため、同じ内容のセルが 複数あります。この場合に、主の生年月日を再度入力するケースがあるため、基本情報のE列~I列 と同じ内容を反復して手で入力しなければならないことがあります。 "日本 太郎"と同じ行のQ列にセルを持って行ったときにQ~Uまでに"日本太郎"~"16"までのデータをコピーする。 そして仮に同じように"英国 花子"と同じ行のWのセルを選択しているときに、W列~AA列に "英国 花子"から"23"までのデータコピーするといったマクロボタンを作りたいのですが 可能でしょうか・・? 自分の力では歯が立たないため教えていただけると非常に助かります。。

  • EXCELのマクロにて

    EXCELのにて連続したデータを入力したデータベースがあります。(行が5000、列がAAまで) このデータベースのデータの最終行だけを指定して違うシートにコピー・貼り付けがしたいのです。 マクロにてこのような作業をするときにはどういった文をかけばよいですか。

  • ベクトル

    Aは0<a<1を満たす数とする。辺AB、ACの長さが等しい二等辺三角形ABCに対し、辺ABを1:5に内分する点をP、辺ACをa:(1-a)にAは0<a<1を満たす数とする。辺AB、ACの長さが等しい二等辺三角形ABCに対し、辺ABを1:5 に内分する点をP、辺ACをa:(1-a)に内分する点をQとする。また、線分BQと線分CPの交点をKとし、直線AKと辺BCの交 点をRとする。 1 →BQ、→CP、→AK、→ARを、→AB、→ACで表すと、それぞれ →BQ=-→AB+a→AC、 →CP=1/6→AB-→AC →AK=(ア-a)/(イ-ウ)→AB +エオ /(カ-キ)→AC →AK=(1-s)→AB+s→AQ=(1-s)→AB+as→AC →AK=t→AP+(1-t)AC=1/6t→AB+(1-t)→AC としてあとは連立して解いたのですが答えが回答欄にあいません。 ミスの指摘お願いします。

  • ベクトル

    △ABCと点P、Qに対して、     →  →  →  →  →  → →  等式7AP=3AB+4AC,2AQ+3BQ+4CQ=0 が成り立つとき、次の比を求めよ (1)BP:PC (2)AQ:QP

  • 先ほどの数学Aの続きですが…

    先ほどの数学Aの続きですが… 先ほど回答して下さった方に質問したかったのですが、 まだ使いかたが慣れていなくて途中で途切れてしまいました。 直線BPの延長線と辺ACの交点をQとすると、 △ABQにおいて、三角形の性質より、  AB+AQ>BQ よって、AB+AC>AB+AQ>BQ>BP また、△PQCにおいて、三角形の性質より、  PQ+QC>PC PQ<BQなので、AB>PQ、 点Qは辺AC上の点なので、AC>QC よって、AB+AC>PQ+QC>PC 従って、AB+AC>PB+PC といった証明の仕方であってるでしょうか? 何度もすみません

  • マクロでの集計の仕方を教えてください

    A:ARまでデータが入力されていて、I,AO,AQそれぞれの最終行に合計金額をいれたいのですが”マクロ”の記入の仕方がわかりません。是非教えてください。 また、AOの合計はAQの欄に済と入力されたものだけの合計を出したいのですが・・・!

  • (エクセルマクロ)複数の一連作業をマクロで行う処理について

    以下の一連の処理についてマクロのコードを一式で教えてください。 【エクセルの構成】 1.シート名 日付だけ都度変更する形式 (例:YYYYMM_教えてGoo) 2.表 列 AからAAまでデータあり 行 1行目はタイトル。2行目以降からデータ。 【処理手順】 1.表全体のフォントを「MS Pゴシック フォント9」にする。 2.1行目から11行目と13行目を削除 3.A列とD列削除 4.一行目の項目行にオートフィルタを設定 5.ウインドウ枠の固定(先頭行(一行目の項目行)の固定) 6.H列に文字が入ってる行のみ削除 7.E列とF列を昇順に並び替え(優先順位は(1)F列、(2)E列) 8.データの最終行の次の行のU列からZ列に表を入れる。 (例)5行目が最終データ行の場合  A…U V W X Y Z 1 ・ 5   6 A =SUM() 7 B 8 C     =SUM() (書式設定と詳細) セルU6 「文字列A」と入力し、背景は黄色、文字色は赤 セルV6 背景は黄色、文字色は赤 セルW6 背景は黄色、文字色は赤 セルX6 背景は黄色、文字色は赤 セルY6 背景は黄色、文字色は赤 セルZ6 数式入力(=SUM(Z$2:Z5(最終行))、背景は黄色、文字色は赤 セルU7 「文字列B」と入力し、背景は黄色、文字色は赤 セルV7 背景は黄色、文字色は赤 セルW7 背景は黄色、文字色は赤 セルX7 背景は黄色、文字色は赤 セルY7 背景は黄色、文字色は赤 セルZ7 背景は黄色、文字色は赤 セルU8 「文字列C」と入力し、背景は黄色、文字色は赤 セルV8 背景は黄色、文字色は赤 セルW8 背景は黄色、文字色は赤 セルX8 背景は黄色、文字色は赤 セルY8 背景は黄色、文字色は赤 セルZ8 数式入力(=SUM(Z6:Z7)、背景は黄色、文字色は赤 すべて掛け線なし 9.データ最終行(表も含む)から5行目全体をグレーにし、その行のA列に「データA」と入力。 10.I列に文字が入ってる行のみを切り取り、一番最後にデータが入ってる行から6行目(「データA」と入力した下の行から) から貼り付ける。(切り取った行は行削除し、上詰め) 11.データ最終行(切取貼り付けしたデータAを含む)から3行目全体を黄色にし、その行のA列に「データB」と入力。 12.X列の前に列を挿入し、挿入した列の一行目(項目行)に「タイトル」と記入。 13.挿入した列の2行目から前の列(W列)にデータが入ってる行まで数式(=ROUND(W2/1.05,0)※2行目に入力した場合)をコピー。 14.セルAB1に「No.」と記入。 15.G列からW列とY列からAA列を非表示にする。 6と8以降からマクロの自動記録ではできませんでした。 ご教授お願いします。

  • エクセル2000のマクロで教えて下さい。

    日々あるデータが送られてきます。 A~AEまであります。 マクロで下記のようにしたいのです。 残すのはA、C、N、T、U、V、W、Z、AAのみですが順序を入替えたい。 順番としてC、A、T、U、W、V、AA、Z、Nの順です。 どのようにすれば良いのか教えて下さい。 もし補足が必要なら申し付け下さい。

  • 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とも一定ではなく都度変動します。 解りやすくご説明いただけると幸いです。宜しくお願いいたします。

必ず紙が詰まる問題の対応方法
このQ&Aのポイント
  • MFC J6999CDWで両面カラー印刷する際に必ず紙詰まりを起こす問題について、対応方法を教えてください。
  • 質問者はWindows10を使用し、有線LANで接続しています。
  • 関連するソフト・アプリや電話回線の種類については特に記載がありません。
回答を見る

専門家に質問してみよう