Excel2013で空白セルを詰めデータを自動コピーする方法

このQ&Aのポイント
  • Excel2013で、【sheet1】のデータを【sheet2】の1~100番まで番号を振った隣のB列に空白セルを詰めながら氏名データを並べる方法を教えてください。
  • 空白セルを詰めるマクロは下記コードで確認しています。 Sub Macro() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlUp End Sub
  • シート間のデータ移動の方法も分かるのですが、2つをどう繋ぎ合わせればいいか分かりません。簡単ですが、【sheet1】の参考画像も添付していますので、アドバイスをお願いします。
回答を見る
  • ベストアンサー

別シートに空白セルを詰めデータを自動コピー

excel2013で、【sheet1】の列にあ~わ行まであり、行にそれぞれ氏名を入れています。 グループ1とグループ2にページを上下に分けていて、それぞれ合計50名です。 行は各20行まで用意していますが、行によっては空白セルもあります。 この【sheet1】のデータを【sheet2】の1~100番まで番号を振った隣のB列に空白セルを詰めながら氏名データを並べたいのですが、マクロで出来るでしょうか? ちなみに空白セルを詰めるマクロは下記コードで確認しています。 Sub Macro() Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlUp End Sub シート間のデータ移動の方法も分かるのですが、2つをどう繋ぎ合わせればいいか分かりません。 簡単ですが、sheet1の参考画像も添付していますので、アドバイス宜しくお願いします。

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

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

どういう順で並べたいのか希望が示されていませんので、てきとーに成り行きでB列に並べることにします。 具体的なセル番地が何も示されていないので、シート1のあ~わがB~K列、1行目がタイトル行、グループ1が2行から20行、グループ2が21行から39行とします。ていうかそういう風に作ってください。 シート1は数式じゃなく「生データで」名前を記入します。それをシート2のB1以下に転記します。 sub macro1()  dim h as range  dim r as long  on error resume next  for each h in range("B2:K39").specialcells(xlcelltypeconstants)   r = r + 1   worksheets("Sheet2").cells(r, "B") = h  next end sub

coppertruc
質問者

お礼

コードまで詳しく記載していただき助かりました。 見事に余白を除いて並びました。

関連するQ&A

  • エクセルVBAで空白セルを削除する方法

    みなさん教えてください。 今エクセルVBAで、下記のようにのA列に空白セルがある場合にそのセルを削除し、 空白セルが無い場合何もしないと言うマクロを作っています(下記のように自動記録し ました)。 しかし、作成したマクロは、下記のようにA列に空白セルがない場合はエラーが出てし まいます。 空白セルが無い場合エラーが出ない方法を教えて頂けないでしょうか。 よろしくお願いします。 <マクロ> Sub Macro1() Columns("A:A").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Selection.SpecialCells(xlCellTypeBlanks).Select Application.CutCopyMode = False Selection.Delete Shift:=xlUp End Sub <データ> A --------- 1 2 1 1 1 3 4 ・ ・ ・ (以降約300行続きます)

  • Excel 偶数番シートのA列が空白であるセル削除

    Excel の1つのファイル内の偶数番シートのA列が空白であるセルを行ごと削除したいのですが、下のコードではうまく動かないです。 シート番号はSheet(2)から(90)までです。 Sub 空白行削除() Dim i For i = 2 To 90 Step 2 Worksheets(i).Activate Columns("A:A").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.EntireRow.Delete Next i End Sub

  • 選択範囲内の空白セルだけ抜き出すマクロでエラー(OfficeXP)

    OfficeXPのExcelを使用しています。 選択した範囲に空白のセルがあったらそこにスペースを入力するというマクロで、下記の一行だけ書きました。 Sub Test() Selection.SpecialCells(xlCellTypeBlanks).Value = " " End Sub 空白のセルが有った場合は問題ないのですが、無いときにエラーになります。 どのようなエラー処理をすればこれを回避出来るのでしょうか?教えて下さい。

  • シート内の一部のセルを別シートにコピー

    Excelのマクロ(VBA)の記載方法について お分かりになる箇所だけでも結構ですので、 どなたかご教授を願い致します。 シートX   A    B   C  1 data1 data2 data3 2 x   data7 data8 3 data4 data5 data6 4 data7 data8 data9 シート Y   A   B   C    D 1 length 3  (任意) (任意) 2 xxxx (任意) (任意) (任意) 3 zzz  (任意) (任意) (任意) 4 (空白)(任意) (任意) (任意) 上記のような2つのシート(同一Excelファイル内)があって、 シートXの一部のセルを次の条件(1~4)でシートYにコピーしたい場合 1.コピー元の列の数は、シートYの "length"と書かれたセルの右となりの数字   とする(上記では3なので、A,B,C列をコピー対象) 2.コピー元の行の数は、シートXの1~4行目までとするが、   シートXのA列のセルが"x"だったら、その行は全てコピーしない。 3.コピー先(Y)の列は、コピー元(X)の列と一つずれてコピー(BならCに、CならDに) 4.コピー先(Y)の行は、シートYのA列で1行からで始めて空白セルになった行からコピー開始。 (上記では、A列で空白セルのある4行目からコピー) 上記条件で、下記のシートYを作成したいのですが、 この場合どようなマクロ(VBA)で実現できますでしょうか。 コピー結果(シートY)  A     B   C   D 1 length  3  (任意) (任意) 2 xxxx  (任意) (任意) (任意) 3 zzz   (任意) (任意) (任意) 4 (空白) data1 data2 data3 5 (任意) data4 data5 data6 6 (任意) data7 data8 data9

  • EXCEL データをコピーして別シートの最初の空白行に貼り付けたい

    EXCEL データをコピーして別シートの最初の空白行に貼り付けたい Sheet1はA列からR列までを使ったシートで、1行目は各項目があり、2行目からは当月のデータが入力されています。 Sheet2はSheet1の1行目と同じようにA列からR列までが項目になっていて、期中のデータを付け足していきたいと思っています。 マクロの記録でやってみたのですが、前月の最後の行(貼り付ける最初の空白行)の認識の仕方が分からず、Sheet2への貼付がうまくいきません。 どのような方法でやったらいいのか教えて下さい。

  • データを別bookシートに移す

    a1シート1のデータ1,2(データ1.5行G列~18行G列,~9000個、データ2.25行G列~38行G列,~9000個)をb1シート1,c1シート1に移行したいのですが、 a1シート1のデータ1,2は、9000個と9000個とします。 b1シート1,c1シート1は、16000個前後をできれば最大にしたいと考えています。 このとき移行したいb1シート1(5行G列~18行G列,~16000個)は最終列からでてしまいます。 出てしまう分をc1シート1(5行G列~18行G列,~2000個)に書き移したいと思っています。 分かりやすくと思い9000個と書きましたが、データにより数は、異なっています。 このとき、データ1とデータ2の連結は、空白行なしです。 b1シート,c1シートは、a1シートとは、別bookです。 こんなときのマクロを教えていただければと思い質問しました。 マクロ記録でしましたが、うまくできませんでした。 コードを教えていただけませんか。 よろしくお願いします。 m2010です。  a1シート1 /ABCDEFGHI-------------MHJ 1データ1 2------9000個 3 4 5------○○~~~~~○○ 6------○○~~~~~○○ 7------○○~~~~~○○ . . . 17-----○○~~~~~○○ 18-----○○~~~~~○○ 19 . . 23データ2 24-----9000個 25-----○○~~~~~○○ 26-----○○~~~~~○○ . . . 37-----○○~~~~~○○ 38-----○○~~~~~○○ 39 b1シート1 /ABCDDEFGHI-----------MHJ-------WQP 1データ1,データ2 2-------16000個 3 4 5-------○○~~~~~○○~~~○○ 6-------○○~~~~~○○~~~○○ 7-------○○~~~~~○○~~~○○ . . . 17------○○~~~~~○○~~~○○ 18------○○~~~~~○○~~~○○ 19 データ1,データ2の継ぎ目に空白なし。 マクロの記録では、 Sub Macro1() ' ' Macro1 Macro ' ' Range("G5").Select ActiveSheet.Paste Range("MHJ5").Select ActiveSheet.Paste Range("F4").Select End Sub c1シート1 /ABCDEFGHI~~ 1データ2の残り 2------2000個 3 4 5------○○~~○○ 6------○○~~○○ 7------○○~~○○ . . . 17-----○○~~○○ 18-----○○~~○○ 19 この質問は、難しいのでしょうか。 書き方がわるいのでしょうか。 よろしくお願いします。

  • Excelの質問です。空白のセルを検索し、ダイアログボックスで把握したい。

    こんばんは。 またまたExcelで頭を悩ませています(>_<) 仕事上、大量のデータを扱うことが多いのですが、データがしっかり入力されているのか否かをチェックする必要に迫られまして・・・。 ここ↓ http://d.hatena.ne.jp/Deja/20090124/1232780962 のやり方なども参照してみたのですが、「同じ行の他のセルに空白データがある場合も選択してしまう」ことから、別の方法を探ってみました。 そして、ダイアログボックスで空白セルを探すことを決めたのですが、書いたコードがうまく作動しません(;_;) Sub blanksearch() MsgBox (Range("A1:A1000").SpecialCells(xlCellTypeBlanks).Address) End Sub は、うまく作動し、ダイアログボックスで空白セルの範囲が表示されたのですが、A列の最下行から検索しようと思い、 Sub blanksearch() MsgBox (Range(.Range("A1"), .Range("A" & Rows.Count).End(xlUp)).SpecialCells(xlCellTypeBlanks).Address) End Sub と書きかえると、「参照が不正または不完全です。」というエラーメッセージが表示されてしまいました(ToT) 2つめのコードはなぜ、うまく動作しないのでしょうか?お暇な時で構いませんので、教えていただければ幸いです。 よろしくお願いします<m(__)m>

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

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

  • 空白セルをデータと認識してしまいます

    Excel2003を使用しています。 「マクロの記録」を使って、あるリストを自動作成 しようとしているのですが、うまくいきません。 A,B2つの列に分かれたデータを連結させるため、 C列に「CONCATENATE」関数を入れて適当な行まで コピーします。(それ以上はデータが入らないだろうと思われる100行目ぐらいまで) その後C列をコピーし、「値貼付け」をして 関数を値に変えます。 そうすると、たとえば実際には20行目までデータが 入っていたとすると、21行目~100行目までは 空白になりますよね? でも、どうもその空白行もデータとみなされている ようなんです…。 Range("C2").End(xlDown).Row で下端セルを探そうとすると、100行目に なってしまいますし、「ジャンプ」で空白セルを 探しても、同じ結果になります。 空白セルを選んで一度「Delete」を押すと 正しく「空白」と認識するようなのですが…。 「実際にデータの入っているセルとそうでないセル」 を自動で判別させたいので、 簡単に「何も入っていないセルを”空白”と正しく 認識させる方法」はありませんでしょうか?

  • VBAで指定範囲内の空白セルを左詰めで一括削除したいのですが

    エクセルで作成した表中に測定結果を集約し、管理しております。 測定を行った際に得られる数値を項目毎に対象列のセルへ集積しているのですが、 測定を行っていない項目のセルは空白となるため、空白セルを左詰めで一括削除したく望んでおります。 下記のようにマクロの記録を使用してコードを取得し、実行してみたのですが、エラーになってしまいます。 Private Sub CommandButton1_Click() Sheets("A").Select Range("B:AH").Select Selection.SpecialCells(xlCellTypeBlanks).Select Selection.Delete Shift:=xlToLeft Range("A1").Select End Sub 対象範囲(列)はB列からAH列としておりますが、測定項目が増えると記載列も増えますので、 範囲を柔軟に変更出来るような方法で希望しております。 お手数ですがご教授いただけませんでしょうか? 宜しくお願い致します。

専門家に質問してみよう