- ベストアンサー
エクセルマクロ(VBA)の空白削除と重複削除について
keithinの回答
>マクロの結果をSheet3に反映させていのですが、 はて? シート2じゃなくシート3にするだけですが。 sub macro2() dim i as long worksheets("Sheet3").range("A:J").value = worksheets("Sheet1").range("A:J").value worksheets("Sheet3").select on error resume next for i = 1 to 10 with columns(i) .textocolumns destination:=cells(1, i), datatype:=xldelimited, fieldinfo:=array(1, 1) .specialcells(xlcelltypeblanks).delete shift:=xlshiftup .removeduplicates columns:=1, header:=xlno end with next i range("1:9").insert shift:=xlshiftdown end sub #丸投げで全部やって貰わないとご自分じゃ全く何もできない/やりたくないなら、最初から丁寧に「ホントにヤリタイ事を」ご相談に書いてください。と、一言ぐらい言わせてもらってもバチは当たらないと思います。 #そんなつもりじゃありませんというのでしたら、ついでにちょこちょこっと聞いちゃえと「ついで感覚」で補足投稿をしているから説明が足りません。ご自分の説明不足で伝えきれていなくて、意図と違う回答が寄せられてしまった状況をキチンと踏まえて、ホントにやりたかった事を詳しく「新しいご相談として」丁寧に作成し直して、改めて投稿するようになさってください。 しかし、そもそもで言うと >Set rngListとrngResultを設定しないといけないのでしょうか。 そもそもこれは何か他のご相談の、他の方から寄せられたマクロについての追加ご質問ではありませんか? 私からはそんな内容は全く触れていませんので、こちらにお問い合わせいただいても困ります。 ほっぽっとくのも一つの対応なんですが、こちらの件についてもまぁ一言言わせてもらう事にしました。
関連するQ&A
- エクセルのマクロで重複データーを削除する
Sub Sample() Dim i As Long With Range("B:B") For i = .CurrentRegion.Rows.Count To 1 Step -1 If .Offset(i, 0) = .Offset(i - 1, 0) Then .Offset(i, 0).EntireRow.Delete Next i End With End Sub 上記のマクロを実行するとエラーがでますが、どこを直せばわかりません。 一つのブックのシート全体のB列の重複データーを削除したいのですが、教えて頂けないでしょうか?
- ベストアンサー
- オフィス系ソフト
- EXCEL VBAの重複行削除について
EXCEL2010を使用しています。 添付画像の「重複行削除 前」の表を、RemoveDuplicatesで下の様にコードを組んで A列で重複する行を見て重複する行を削除しています。 Public Sub 重複行削除() With WorkSheets(1) .Range(.Cells(1, 1), .Cells(8, 3)).RemoveDuplicates _ Columns:=1, Header:=xlYes End With End Sub すると、日付の新しいデータが削除され、古いデータが残ってしまいます。 (添付画像の「重複行削除 後」) ReniveDuplicates Columns:=Array(1,3) とした場合は、すべてのデータが残ってしまいます。 添付画像の「欲しいデータ」の表の様に、 日付の新しいものを残すように重複行削除は出来ないでしょうか? 詳しい方、どうか教えてください。 よろしくお願いします。
- ベストアンサー
- Excel(エクセル)
- エクセル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マクロなのですが・・
VBA初心者です。 データーをHPから、単純にコピーしてきて、 EXCELに貼り付けています。 フィルターをかけても、画像かなにかがセルに張り付いているのか、 空白行をすべて削除できません。 いろいろ試して(HPから、空白セルの行削除について書かれてあるマクロを貼り付けて)動いたのが、このVBAです。 しかし、遅いので、早いVBAに簡略できればいいのですが。。 大体、1000行ぐらいの文字を貼り付けて、3/1ぐらいが空白行です。A行のセルの空白のみを、削除したいのですが。 まったくの素人なので、わかりません。 どうかよろしくお願いいたします。 Sub 空白の削除() x% = Worksheets("sheet1").Range("A65536").End(xlUp).Row For i = x% To 1 Step -1 If Worksheets("sheet1").Cells(i, 1).Value = "" Then Worksheets("sheet1").Rows(i).Delete Next End Sub
- ベストアンサー
- オフィス系ソフト
- VBA RemoveDuplicatesが動かない
以下のマクロを実行しても動きません。 RemoveDuplicatesの行でエラーとなります。 メッセージ:アプリケーション定義またはオブジェクト定義のエラーです。 何が間違ってるのでしょう? エクセル2013 Windows8 E列の重複を削除するマクロです。不要なWithを使っているのは、別マクロから切り出したものだからです。 Sub test() Dim Colref As Long, LastRow As Long With Worksheets("Sheet1") Colref = 5 LastRow = Cells(Rows.Count, Colref).End(xlUp).Row Range(.Cells(1, Colref), .Cells(LastRow, Colref)).RemoveDuplicates Columns:=CVar(Colref), Header:=xlNo End With End Sub
- ベストアンサー
- Excel(エクセル)
- 重複行を完全削除するエクセルのマクロ
Sub sakujyo() Dim i, ii As Long For i = 1 To Range("a65336").End(xlUp).Row For ii = Range("a65336").End(xlUp).Row To i + 1 Step -1 If Cells(i, 4).Value = Cells(ii, 4).Value _ And Cells(i, 13).Value = Cells(ii, 13).Value Then Delete Shift:=xlUp End If Next ii Next i End Sub マクロに関しては、素人でございます。 こちらのマクロを作ってみたのですがうまくいきません。 4列目と13列目の列が重複したときのみ重複した行をすべて削除させたいと思っております。どうぞお教えください。
- ベストアンサー
- オフィス系ソフト
- エクセルでのVBA(マクロ)
以前Wendy02さまに 以下のようなデータがシート1に入力されているもので A B C D E F 1名前 住所 請求書 納品書 領収書 到着確認書 2山田 東京 ○ ○ 3井上 千葉 ○ ○ ○ 4植田 大阪 ○ ○ 5境 秋田 ○ ○ 6大田 沖縄 ○ ○ ○ ○ 7野原 埼玉 ○ データの”○”は書類が確認済で、空白は未確認あるいは未到着です。 "C"列から"F"列の中で1つ以上空白のあるデータを検索して別シート2へそのままコピー出来るマクロを教えていただいたのですが、 A列に受付番号(500件)を先に入力しておいて(一応自分でマクロを組んで)同じ処理をするとデータ(B列:名前)が入力されていないものまで検索結果としてカウントされます。 Sub FindBlank1() Dim Rng As Range Dim i As Long 'Sheet2のフィールド行(名前,住所..)は、1行目にあるとします。 With Sheet1 .Activate i = 2 '2行目から Set Rng = .Range("A1", .Range("A65536").End(xlUp)) For Each c In Rng If Application.CountA(c.Offset(, 2).Resize(, 4)) <> 4 Then 'A列から、A列を含めて6列取得し、Sheet2にコピー c.Resize(, 6).Copy Sheet2.Cells(i, 1).Resize(, 6) i = i + 1 End If Next End With End Sub >i = 2 '2行目から の前に組めば出来る筈だと思うのですが? お助けください。
- ベストアンサー
- オフィス系ソフト
- マクロ 重複削除の選択範囲を全てにしたい
K列全てを選択し、重複削除をする流れをマクロ記録で作成しました。 コードはA1セルからS7731セルまでですが、毎回データの量が変わってしまうので、S7731セルまでではなく、全てにしたいですが、どうすればよいのですか? 宜しくお願いします。 Sub 重複削除() Columns("K:K").Select ActiveSheet.Range("$A$1:$S$7731").RemoveDuplicates Columns:=11, Header:= _ xlYes End Sub
- ベストアンサー
- Visual Basic
- excel vba
(1)下記のマクロに出てくるApplication.CutCopyMode = False というのは何でしょうか。 (2)また自分でマクロ記録してあるシートを、別のシートにコピーしたとき Application.CutCopyMode = False Selection.Copy というのが、付くときとつかないときがあったんですがなぜそのようなことがおきるのか。 (3)またSelection.Copyというのは何ですか。 Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2007/1/11 ユーザー名 : ××××× ' ' Workbooks.Open Filename:="C:\aaa\bbbbb\cccc\aaaa_1.xls" Columns("H:H").Select Application.CutCopyMode = False Selection.Cut Columns("E:E").Select Selection.Insert Shift:=xlToRight Columns("I:I").Select Selection.Cut Columns("G:G").Select Selection.Insert Shift:=xlToRight With Selection.Font .Name = "MS 明朝" .Size = 10 .Strikethrough = False .Superscript = False .Subscript = False .OutlineFont = False .Shadow = False .Underline = xlUnderlineStyleNone .ColorIndex = xlAutomatic End With ActiveSheet.PageSetup.PrintArea = "$A$1:$L$61" ActiveWorkbook.Save End Sub
- ベストアンサー
- オフィス系ソフト
- 空白行を削除するマクロ
空白行を削除するマクロについて質問です。 「Aが空白の場合」ではなく「A~Lセルすべてが空白の場合」に行を削除したいです。 下記のマクロでは、Aが空白の場合に行がすべて削除されてしまいます。 Aが空白でも、BやLに数字や文字があれば、その行は残るようにしたいです。 このマクロをどう変化させれば、うまく作業が実行されますか? マクロは初心者です。よろしくお願いいたします。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・ sub macro1() dim s as long dim e as long dim r as long s = 5 e = range("A65536").end(xlup).row for r = e to s step -1 if application.trim(cells(r, "A")) = "" then cells(r, "A").entirerow.delete shift:=xlshiftup end if next r end sub
- ベストアンサー
- Excel(エクセル)