セルの移動、貼り付けの繰り返し

このQ&Aのポイント
  • Excel2003を使用して、データが入った各行の日付の下に3行挿入し、値を切り取って貼り付けたいです。VBAを使って一括で処理したいですが、やり方がわかりません。初心者なので助けてください。
  • Excel2003でA列からC列までのデータが入った各行の日付の下に3行挿入し、値を移動して貼り付けたいです。手作業では時間がかかるので、VBAを使って効率化したいです。初心者なので具体的なコードがわかりません。教えてください。
  • Excel2003のA列からC列までの各行には必ずデータがあり、日付の下には3行空行を挿入したいです。また、B列の値をA列に移動し、C列の値をA列に移動した後は、空行にしたいです。手作業では面倒なので、VBAを使って一括処理したいです。初心者なのでコードがわかりません。お助けください。
回答を見る
  • ベストアンサー

セルの移動、貼り付けの繰り返し

お世話になります。 Excel2003を使用しています。 A列からC列まで各行に必ずデーターが入っており、日付の入った各行の下に3行挿入した後、B1の値をA2へ、C1の値をA3へそれぞれ切り取って貼り付け、その下の行は空白にしたく、今現在手作業で行っています。VBAで一括で処理したく、データーがある限り同じように繰り返したいのですがやりかたがわかりません。初心者なので自分で考えたコードも記述していなく、丸投げですみませんが、どなたかご教授していただけませんか?よろしくお願いします。   A     B     C   1 3月1日 大阪  日帰り 2 3月2日 東京  出張   3 3月3日 名古屋 日帰り  4 ・・  ・・  ・・  下図のようにしたいのですが。    A    B     C   1 3月1日  2 大阪 3 日帰り 4 空白 5 3月2日 6 東京 7 出張 8 空白 9 ・・

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 関数でもできそうですが、VBAをご希望だというコトですので・・・ 一例です。 Sheet1のデータをSheet2に表示するようにしてみました。 Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() 'この行から Dim i As Long, cnt As Long, wS1 As Worksheet, ws2 As Worksheet Set wS1 = Worksheets("Sheet1") Set ws2 = Worksheets("Sheet2") Application.ScreenUpdating = False ws2.Cells.Clear For i = 1 To wS1.Cells(Rows.Count, 1).End(xlUp).Row cnt = cnt + 1 wS1.Cells(i, 1).Resize(1, 3).Copy ws2.Activate ws2.Cells((cnt - 1) * 4 + 1, 1).Select Selection.PasteSpecial Paste:=xlAll, Transpose:=True Next i Application.ScreenUpdating = True End Sub 'この行まで こんな感じではどうでしょうか?m(_ _)m

yanohara
質問者

お礼

できました。 初心者だからといっても、もう少し勉強してから質問しないといけないのに、ご丁寧なご回答ありがとうございました。 非常に助かりました。

その他の回答 (1)

noname#204879
noname#204879
回答No.1

マクロを使用しない別解 Sheet2!A1: =IF(MOD(ROW(),4),OFFSET(Sheet1!A$1,(ROW()-1)/4,MOD((ROW()-1),4)),"") このセルを必要な行数だけ下方にズズーッとドラッグ&ペースト

yanohara
質問者

お礼

一番早いご回答ありがとうございました。結局はtom04さんのコードで出来ました。 今後もよろしくお願いします。

関連するQ&A

  • exlel  繰り返し マクロ VBA

    エクセルのシートで    A    B  1空白   100  2空白   A  3空白   B  4空白   C  5空白   空白  6空白   空白  7空白   200  8空白   A  9空白   B 10空白   空白 11空白   300 12空白   A 13空白   B 14空白   C 15空白   D 16空白   空白 上記のデータを下記の様に空白行をはさんだ不特定行のB列の各行のはじめのセルの値をA列に書き込んでいくマクロをお教えください。    A    B  1100    100  2100    A  3100    B  4100    C  5100    D  6空白   空白  7200    200  8200    A  9200    B 10空白   空白 11300    300 12300    A 13300    B 14300    C 15300    D 16空白   空白 お願い致します。

  • セルの選択、貼り付け

    よろしくお願いします。 下記のような処理を大量データに対して行うVBAを書きたいのですが、なかなか上手くできません。 〈処理〉 A列の空白セルに対して、空白セル(例えばA2)の上のセル(A1)の値(2003)をコピーし、空白セル(A2)に貼り付ける。 次に、ひとつ下空白セル(A3)も同様に1つ上のセル(A2)の値(2003)をコピーし、空白セル(A3)に貼り付ける。 を繰り返す。 このようなプログラムを書きたいのですが。    A     B C …       A  B C… 1 2003         1 2003 2              2 2003 3              3 2003 4 2005       ⇒ 4 2005 5              5 2005 6              6 2005 7              7 2005 8 1999         8 1999 :              : :              :        よろしくお願いします。

  • セルの選択、貼り付け

    よろしくお願いします。 次のような処理をするプログラムを書きたいのですが、うまく書けません。教えてください。 (処理) 1つのExcelファイルの中で、sheet1A列のセルの値と同じ値を有するセルがsheet2A列にある場合、当該行のB列の値をsheet1のセルに貼り付ける。   (前) 〈sheet1〉       〈sheet2〉            A  B …       A  B …              1 c1           1 c1 200   2 b2           2 a1 300   3 d5           3 b3 500            :              4 b2 400                 5 d5 500                           :   (後) 〈sheet1〉                A  B …           1 c1 200     2 b2 400      3 d5 500    :            

  • セルの値と色を変えたい

    OS WIN10 Office2007の環境で A列B列C列で各行は20づづあります 実現したいのは 1. D列に文字列(D2に)Hが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を黄色にしたい 2. D列に文字列(D2に)Gが入力されると、その行のB列(B2)の値を削除2の行(A2 B2 C2)の背景色を緑色にしたい 条件付き書式とか設定していますが うまくいきません ご指南ください

  • Excel(2000)で行毎にセルをみて、値を返す

    例えば、以下のようなデータがあったとして、各行毎に左から見た結果、最初にデータがあったセルの列の1行のセルの値を各行のG列に返したい。 ______A__B__C__D__E__F__G__ 1行_ア__イ__ウ__エ__オ__カ____ 2行_1__3__5__2__4__1__ア__ 3行_____2__5__1__5__4__イ__ 4行_____________2__8__2__エ__ 5行_____2______2__1__4__イ__ 6行_________5______2______ウ__ G列に結果。 例えば、G3のセルに何らかの関数を入れて、A3~F3を左から見た結果、B3に2というデータがあるので、その列の1行であるB1の値、イをG3に返すといったないようです。 _ は、スペースをとるためのものです。 実際のデータは500行あり、各行の検索する列数は23列あります。 よろしくお願い致します。

  • 2つの値が同じという条件で行を消したい。

    下のような表で、1列目、2列目の値がともにダブっている行のみを消したいです。 1   A 1   B 1   B 1   C 2   A 3   C 3   A 3   C でいうと2、3行めの 1   B と 6、8行めの 3   C がダブっているので それを行ごと消して 次のようにしたいのです。 1   A 1   B 1   C 2   A 3   C 3   A ちなみに各行には他の列にもデータがならんでいます (3   A   あ   カ・・・・・・のようになっています)。 また、ダブるのは2行に限らず3行4行にわたるものもあります。 これってけっこう難しいのでしょうか? ぜひアドバイスを。

  • エクセルマクロにて条件比較後にセル挿入をしたい

    下記の様な表(処理前)があるとします。 2行目から行毎に"A列 = C列 AND B列 = D列"という比較を行い、 TRUEなら次の行へ、FALSEなら該当行のC列とD列に 空白セルを挿入し(処理後の表の様にしたいです)次の行へ進む という処理をマクロにて実現したいです。 どのようなマクロを組めば宜しいでしょうか?ご教授お願い致します。 <処理前> A列 B列 C列 D列 東京 斎藤 東京 斎藤 東京 田中 東京 後藤 東京 伊藤 東京 井上 東京 後藤 東京 三沢 東京 井上 大阪 田中 東京 三沢 <処理後> A列 B列 C列 D列 東京 斎藤 東京 斎藤 東京 田中 <両列に空白セル挿入> 東京 伊藤 <両列に空白セル挿入> 東京 後藤 東京 後藤 東京 井上 東京 井上 大阪 田中 <両列に空白セル挿入> 東京 三沢 東京 三沢

  • 空白セルのカウント方法

    どなたかご存じでしたら回答をお願いします。 【質問】 各列毎に●や★が任意の数がある8行のセルがあります。 各列毎に8行目から上に遡り、●までの間の空白のセルを数える方法が知りたいです。 但し、★も”空白の1つ”として数えます。 【入力】   A  B  C  D  E  F  G ・・・・ 1 ●        ★ 2       ●  ●  3       ★        ● 4             ★ 5              6 7                ● 8                   ● 【結果】  A B C  D E  F G ・・・  7 8  6  6  8  1 0 ※結果の説明 A:●の下には空白が7個。 B:●が無く空白が8個。 C:●の下に★があるが空白とみなして6個。 D:●の下に空白が6個。 E:★があるが空白とみなして8個。 F:●の下には空白が1個 G:●の下には空白が0個 使用するエクセルは2010です。 以上、よろしくお願いします。

  • 空白セルを飛ばして転記したい

    こんばんは。 またもやexcelで悩んでおります。どうぞご教授ください。 下のようなデータがあります。     A   B   C   D    E   F   G 1 山岡     山田  丸山  山岡  山田  丸山 2      平尾     南田  平尾  南田          3 ・ ・ A列からD列まで名前のデータがあり、空白のセルもあります。 E列からG列には、各行のA列からD列の名前を、空白セルを飛ばして表記したいのです。(詰めて表記したいです) 名前は各行とも0から3つまでです。 前回同様(QNo.4073079)行き詰ってしまいました。 よろしくお願いいたします。

  • データ抜き出し・別シートへ貼付マクロ

    WinXP、Office2003を使用しています。 Sheet1に入力されている情報から、下記条件を抜き出し、あらかじめ用意 してある別シートに書き出したいをしたいと思っております。 業務が多く恥ずかしながら手が回らず、少しでも負荷を軽くしたいのですが ご存知の方がいらっしゃいましたらマクロを教えていただけませんでしょうか? なお、1行目にはタイトルが入っており、2行目以降に情報が入っています。 【実施したい処理】 ・B2セルに「/愛知」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/愛知"シートへ書き出す。 ・B2セルに「/東京」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/東京"シートへ書き出す。 ・B2セルに「/大阪」と入っていたら、A2・B2・C2セルの値を あらかじめ作成してある "/大阪"シートへ書き出す。 ※2000行ぐらい情報が入っています。 【イメージ(処理前)】        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 あああ/1234/111  あああ/1234/111/愛知   56789 3行目 ててて/2222/987  ててて/2222/987/東京   11122 4行目 くくく/5467/232  くくく/5467/232/愛知   65656 5行目 ままま/5555/741  ままま/5555/741/大阪   33444 【イメージ(処理後)】 愛知シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 あああ/1234/111  あああ/1234/111/愛知   56789 3行目 くくく/5467/232  くくく/5467/232/愛知   65656 東京シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 ててて/2222/987  ててて/2222/987/東京   11122 大阪シート        A列          B列         C列 1行目  A列タイトル      B列のタイトル     C列のタイトル 2行目 ままま/5555/741  ままま/5555/741/大阪   33444 わかりにくくて申し訳ございませんが、よろしくお願い致します。

専門家に質問してみよう