• ベストアンサー

EXCEL 異なった行に振り分ける方法

自動記録マクロがやっと出来る超初心者です。 よろしくお願いします。 EXCELです。 A1のセルに 1か2か3の数字が入っています。 2行目にA2~CX2まで項目が入っています。 A1が1の時 2行目のA2~CX2列の内容を4行目に移し A1が2の時 2行目のA2~CX2列の内容を5行目に移し A1が3の時 2行目のA2~CX2列の内容を6行目に移します。 どのようにしたら良いのか教えてください。 マクロ超初心者ですので、わかりやすく教えていただける大変助かります。よろしくお願いいたします。

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

  • ベストアンサー
  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.2

No.1です。 移動でなくて、コピーですね。それで、一点確認があるのですが、 > また、その値+1の行に必ず移す、という規則性があります とありますが、質問文ではA1が1のときは4行目、というように+3になっています。とりあえず+3で書いてみました。A1が文字列やマイナス、空白の場合はエラーを出すようにしていますが、0以上の数値だと4以上でもエラーにはしていません。 ご希望の動作と違うようでしたら、また補足をお願いします。 Sub Furiwake()   Dim CopyRow As Variant   CopyRow = Range("A1").Value   If Not IsNumeric(CopyRow) Or CopyRow < 0 Then     MsgBox "A1のセルに0以上の数値を入力してください", vbExclamation, "入力エラー"     Exit Sub   End If   CopyRow = CopyRow + 3   Range("A2", "CX2").Copy (Cells(CopyRow, 1)) End Sub

pi-man39
質問者

お礼

助かりました。 本当に有難うございました

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

その他の回答 (1)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.1

「移す」というのは、2行目は空になる、ということでいいですか? それならこんな感じでしょうか。A1の値がもっとたくさんあり、その値+1の行に必ず移す、という規則性があればSelect CaseでなくIf文を使った方がいいと思いますが、とりあえずこれで。(If文を使ったやり方はご自分で考えてみてください) Dim CopyRow As Integer Sub Furiwake()   Select Case Range("A1").Value     Case 1       CopyRow = 4     Case 2       CopyRow = 5     Case 3       CopyRow = 6     Case Else       Exit Sub   End Select   Range("A2", "CX2").Cut   ActiveSheet.Paste (Cells(CopyRow, 2)) End Sub

pi-man39
質問者

補足

早速有難うござました。 すみませんでした。言葉がたらなくて申し訳ございません。 「移す」ではなく。「コピー」です。 すみませんがよろしくお願いします。 IFを使ったやり方の方が易しいようですので 申し訳ございませんが、よろしかったらそちらも教えていただけますか。 また、その値+1の行に必ず移す、という規則性があります よろしくお願いいたします。

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

関連するQ&A

  • エクセルで行を固定させるには・・

    エクセルで第1行にいろいろな項目をいれました。 以降のセルは数字とかその項目に対する内容が入っています。 ずっと下にスクロールしていくと、この列はいったい何の項目の セルだったのか、項目タイトルがわからなくなります。 なのでスクロール時に第1行のみ動かないように固定したいのですが、 どうすればいいのでしょうか? わかる方がいましたら教えてください。お願いします。

  • Excel マクロで 列と行を非表示にするには?

    Excel マクロ初心者です ボタンで sheetの 行1~10を非表示にして その後さらに列のBA~BJを非表示にするマクロを設定したいのですが マクロの自動記録にすると シート上一部のセルのみが残り その他は全て消えてしまいました。 行または列だけの非表示の自動記録は 正常に動きますが 単独のマクロを行と 列でそれぞれ作り、片方を動かした後 もう一方を動かすとやはり一部のみ残り 他は全て消えてしまいます。 マクロで行と、列を同時に非表示にするのは無理なんでしょうか?

  • エクセルの表示について

    1行目:セルA1+セルB1= C1 2行目:セルA2+セルB2= C2  ・  ・  ・ という計算式を、50行作成します。 C列に、(=A1+B1)という計算式を入れて、1行目のC1とドラグ&ドロップし、50行目まで計算式を入力するとき、 B列に数字が入力されていないときに、計算式の入った C列にも何も表示されないようにしたいんです。 今の状態だと、A列に数字が入っていると、自動的にC列にも数字が入ってしまうので困っています。 当方はエクセル初心者なので、できれば、マクロなど複雑な方法を用いず、解決したいのですが・・・ どなたか御存知の方、アドバイスお願いします。

  • エクセル マクロで数値が変った時行挿入できますか

    最近VBAを勉強しはじめた初心者です。 簡単なマクロを使ってエクセルシートを作成中しているのですが、以下の部分がどうしても分りません。 (1)ある列(例えばA列)に数字が入っています。 (2)その数字は、セル1個つき1桁から3桁(1から100の場合)です。 (3)「1」「1」「1」と3セル並んでいたり、「2」「2」が2セルだったりと色々です。 (4)この数字が変化したとき、例えば「1」と「2」の間、「2」と「3」の間などに、  自動的に行挿入して、空白行を作りたいと思っています。 マクロでこのような事が可能でしょうか? もし、お分かりになる方がおられましたら、ご教示の程お願いいたします。 どうぞよろしくお願いいたします。

  • エクセル 網掛けしてあるセルの行を残してそれ以外の行を削除するVBA

    windows-xp、エクセル2003を使っています。 エクセルデータがA列からU列まであります。 (1000件程かな、時々AA列まである時もあります) G列には、網掛けしてあるセルがあります。 そこで!! 網掛けしてあるセルの行だけを残して、網掛けがされていない行のデータを一気に削除する!というマクロ(VBA)を作りたいのですが、どうすればよいでしょうか? VBAまだ、よくわかっていないので、初心者レベルでわかりやすく教えてくださると助かります。 宜しくお願い致しますm(_ _)m

  • エクセル (1)行削除 (2)列追加と計算式入力 

    エクセル マクロで自動で計算させたいのですが、マクロの記録しかやったことがない者です。 添付画像のように、 元のデータとして、A列に黄色のセルがある表があります。 やりたいことは2種類あって (1):A列に黄色がある行のみを残す。 (1)-1:(1)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。 (2):A列が無色の行のみを残す。 (2)-1:(2)をやった後に、列を追加し、計算式をデータがある行分だけ入力して計算させる。 (1)、(1)-1と、(2)、(2)-1それぞれのマクロを教えてください。 色の指定の違いだけになるかと思いますが、良く判らないので、お願いいたします。 また、例えば赤色などへの変更も可能か、教えて欲しく。 行を残す内容と、列追加や、計算式入力等、それぞれ判るように、コメント行を入れていただけると助かります。 申し訳ありませんが、お願いいたします。

  • エクセルで数字を認識して、行をコピーして挿入するマクロ

    エクセルのマクロでこんなことは可能でしょうか? (1)あるセルに(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら4行、1なら0行 (入力値より-1行) (3)ひとつ下の行に「コピーしたセルの挿入」で行の追加をする 例 列 A.B.C.D.E a.b.c.d.2 "a.b.c.d.2" a.b.c.d.3 "a.b.c.d.3" "a.b.c.d.3" Eの列に2とある場合下に2行-(1行)追加コピー "a.b.c.d.2"の部分。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

  • エクセルで数字を認識して行をコピーして挿入するマクロ

    以前ご質問がありましたが少し違います。 エクセルのマクロでこんなことは可能でしょうか? (1)ある「不特定のセル」に(数字)が入ったとき    (そのセルの列は固定) (2)自動的にそのセルの「行」全体をコピーして    その数字が5なら5行、1なら1行 (3)ひとつ下の行に「コピーしたセルの挿入」で行の追   加をする 例 列 A.B.C.D.E a.b.c.d.2 "a.b.c.d.2" "a.b.c.d.2" a.b.c.d.3 Eの列に2とある場合下に2行追加コピー "a.b.c.d.2"の部分。 不特定が難しい場合は E列とか列を決めていただいてもよろしいです。 あとでVBをこちらで変更いたします。 無理を言いますが可能であれば お詳しい方、ご教授宜しくお願い致します。

  • Excel(エクセル)行挿入SAM自動計算

    Excel(エクセル) SAMで1行目から10行目の合計を出していて、10行目以降に行を挿入して自動的に1行目から11行目の合計が出るように設定したいです。 ※元から空白のセルを入れておくことはしたくありません。 ※マクロやVBAは使えません。初心者です。 例 : (A1) 200 (A2) 100 (A3) 200 ←後から挿入した (A4) 合計 300 ←自動的に500になって欲しい 宜しくお願いいたします。

  • 複数行に空白行を一括で挿入したいのですが

    エクセルに関する質問です。 セルA列の14行目から30000行まである数字が入力されています。 各行間に一行ずつ空白行を挿入したのですが マクロを使ったやりかたでもかまいませんので 一括でする方法があれば教えていただけないでしょう?

専門家に質問してみよう