• ベストアンサー

データ変換マクロ

数値データのシートがあります。 A列に空白があった場合、その行のEとFのセルをコピーして1行上のEとFのセルにコピーしたいというマクロを作成しています。 全部で100行ほどのデータに、いくつか空白セルがあって規則性はありません。空白セルのある行はすべてが対象となります。 空白を見つけた後、「その行のEとFのセル」という指定の仕方で詰まってしまいました。 良い方法をおしえてください。

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

  • ベストアンサー
  • driverII
  • ベストアンサー率27% (248/913)
回答No.1

? ループで見ていきますよね。 for row = 2 to 100 if cells(row,1) = "" then cells(row - 1,5).Value = cells(row,5).Value cells(row - 1,6).Value = cells(row,6).Value end if next row でいいのでは? 細かいとこは修正してください。

kichi2005
質問者

お礼

解決しました。 ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

A列が空白の行の行番号までは取得できているのですね。それを変数iとすると Cells(i-1, "E").Value = Cells(i, "E").value Cells(i-1, "F").Value = Cells(i, "F").value 1行で代入しようと思ったら以下のような方法もあります cells(i-1,"E").resize(1,2).value = cells(i,"E").resize(1,2).value

kichi2005
質問者

お礼

大丈夫でした。 解決しました。 ありがとうございました。

kichi2005
質問者

補足

できていると思っている行番号の取得ができていないようです。 空白を見つけて・・・からおしえていただけないでしょうか?

関連するQ&A

  • エクセルのマクロでこういう場合は?

    エクセル97です。 Sheet1の E3:J29 に表があります。 E列、F列は文字列、G列は数値、H~J列には式が入っています。 この表の G列の値が空白や0でない行だけをコピーして、Sheet2 のB2 以下に切れ目なく表の「値」を貼り付けるにはどうのようなマクロを書けばいいのでしょうか?(G列が空白や0の行はSheet2の表では一切無視され、空白行ができないようにしたいのです。) よろしくお願いします。

  • エクセル2010 繰り返しマクロ

    (1)g列の空白の最上行に =SUMPRODUCT(min((a:a>=f2)*(a:a<f2+730)*e:e)) と入力。 そのセルをコピーし、同じセルに値を上書き貼り付け ↓ (2)a列に(1)のセルの左隣のセル以下の数値がある行の、b列を削除 (画像の場合、(1)のセルがg1の場合、b2,b3を削除する) というのを、f列に数値がある行だけ繰り返すマクロの構文を教えてください。 大変お手数おかけいたしますが、どうぞよろしくお願いします。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか?

    EXCELの「行列を入れ替える」マクロについてどなたか教えていただけないでしょうか? 下記のようにならんだDATAがあります。   A列   B列  C列  D列  E列 (1行)2002/12/17 15240 15280 15220 15220 (2行) (3行) (4行) (5行)2002/12/18 15250 15250 15210 15210 (6行) (7行) (8行) (9行)2002/12/19 15220 15310 15220 15310 (10行) (11行) (12行) (13行)2002/12/20 15220 15260 15210 15230 (14行) (15行) (16行) (17行)2002/12/24 15300 15310 15270 15310 (18行) (19行) (20行) (21行)2002/12/25 15300 15340 15300 15600  . . . . . . . . . . . . . . . . . . . . . . . と,このようにDATAは日付の横に数値が4つずつ横に並んでおりますが、この4つの数値をその4つ目の数値の真横のF列から縦に4つ並べたいのですが、一気にできるマクロがないものでしょうか?下記のようにです。   A列   B列 C列 D列 E列  F列 2002/12/17            15240                  15280                  15220                  15220 2002/12/18            15250                  15250                  15210                  15210 2002/12/19            15220 15310 15220 15310                   . . .                    といった感じに一気にマクロで処理してしまいたいのです。DATAはかなりの行数あり、すべて3行の間隔があります。日付の横に4つの数値が規則的に並んでいるというものです。何回でもマクロボタン一発で4つの横に並んだ数値のみを縦に並べた4つの数値にしたいのです。つたない説明で大変申し訳ありませんが、どなたかわかる方お教えくださいませ。

  • マクロを途中まで組んで後半どう入力すればいいかで躓いてます

    「記録→実行」が出来る程度のマクロ初心者です。 分かりにくいかもしれませんが、現在の状況です。 内容が仕事の話になるので、例としてのファイル名&データになります。 BOOKファイルが『1月』~『12月』までありまして 1つずつのBOOKファイルには【朝】【昼】【夕】【晩】と4つのsheetがあるとします。 sheet内は    A B~H列 3行:0 12 4行:0 25 5行:0 10 6行:1 13 7行:1 14 ~ 300行:23 15 このような感じで数値が入ってます。 やりたいことは例えば『2月』のファイルを開き、そこでマクロを実行したら4つのsheetの"A列"の"0"の数値を判断し、"0"の数値がある複数の行を指定する。 次にあらかじめ開いてある『2009年』という別のBOOK(同様に各sheetに【朝】【昼】【夕】【晩】があります)にその【朝】【昼】【夕】【晩】の空白の行に"0"の行をコピーする。 次に『3月』を開き、マクロを実行し同様に"0"の部分を指定し開きっぱなしの『2009年』の空白行(先ほどコピーした後のところ)に"0"の行をコピーする。 という感じでやりたいのですが、できるでしょうか? 拙い文章で分かりにくい質問ですが、よろしければ注釈付きで教えて頂けると幸いです。

  • 空白セルの削除と重複データの加算のマクロ

    シート1の文字列のデータの0又は空白のセルを取り除いて、並んでいる文字列の左と真ん 中の数が重複しているデーターは左端の数を加算して別のシート2のC10からC100のセルに抽出できるマクロを教えて下さい。データーの0は関数で空白にしたいと思っています。 データの並び方はこのままで重複するデーターの加算と空白のセルの削除を一回のマクロで実行したいのです。  E列               空白を削除    0-4-1              0-4-1         2-3-2              2-3-2         2-2-3              2-2-(3) 0                 2-2-(1) 2-2-1              4-1-9 4-1-9              2-1-7 2-1-7              2-2-3 0                 2-3-(5)                (数式がある空白セル)   2-3-(1)            2-2-3              2-3-(4) 0                 0-4-1 2-3-5 2-3-1 2-3-4 0-4-1 シート2のB列10~100に抽出 0-4-1 2-3-2 2-2-4 4-1-9 2-1-7 2-2-3 2-3-10 0-4-1 このように抽出したいのです。

  • Excel データの一部を別シートにコピー

    Excelで、データ行のどこかをクリックし、ボタンを押したとき、その行を別々のシートに分類してコピーさせるマクロを作りたいと思っています。 このとき、コピー先のシートをA列のデータで区別したいのです。 1.クリックした行のA列のセルを判定し、そのセルのデータを読み取る方法 2.読み取ったデータ(文字)を、コピー先シート名に指定する方法 このマクロの記述方法を教えてください。よろしくお願いします。 コピー範囲を指定し、貼り付け先のシートをアクティブにできれば、あとは記録マクロをつないで作るつもりです。

  • 【マクロ】クリックすると空白を含む列を非表示に

    上司にExcelのデータが見づらいと言われて困っています。 下記のようなマクロやVBAを教えていただけないでしょうか? 例えば、 A2のセルをクリックすると、その行(2行目)から空白セルを検索して、そのセルを含む列を非表示にして、データが入っている列だけを表するようなマクロってないでしょうか? (要は、C2とE2が空白セルのとき、A2をクリックして、A/B/D/F~の列だけ表示されるようになるマクロです。 同様に3行目でも、空白セルがB3、C3なら、A3をクリックした時、A/D/E…列だけ表示されて、B・C列が非常時になるような。) 似たような機能があれば、A2クリックでなく別にボタン等を作っても構いません。 ややこしくて、申し訳ございませんが、本当に困っているので、 どうかよろしくお願いいたします。

  • マクロにて空白のセルを一括して消去でなく削除したい

    空白のセルを一括して、空白セルについた色も含めてマクロで全て削除したい。 現在のデータ(仕様)について 1.Sheet2に列ごとにセルに色をつけ、データもあるとします。 2.A列10行・B列6行・C;列18行というように、列によってデータの入った範囲が違います。 3.どの行も途中に空白セルはなく、詰めたデータです。 以上です マクロで一括処理したいと思いますが、このようなことができるコードを教えて頂けませんか。よろしくお願いします。

  • マクロ:他シートにデータをコピーしたい

    Excelのマクロについてです。 シート1にデータが有り、その中のB列に「済」と記入されている行のみ シート2にコピーして転記したいのです。 これだけなら簡単なのですが データ内には複数行にまたがってのセル結合がされてあったり 図形描写やテキストボックス等も混ざってあります。 それらもまとめてコピーしたいのですが、マクロで何とかなるのでしょうか?

専門家に質問してみよう