
No.1ベストアンサー
- 回答日時:
こんばんは!
元データはSheet1にあり、削除したい文字列をSheet2のA1セルからA列に羅列しておきます。
一例です。標準モジュールにしてください。
Sub Sample1()
Dim i As Long, wS As Worksheet
Dim myFirst As Range, myFound As Range, myRng As Range
Set wS = Worksheets("Sheet2")
With Worksheets("Sheet1")
'削除したい文字列を一旦「#」に置き換える//
For i = 1 To wS.Cells(Rows.Count, "A").End(xlUp).Row
.Range("A:A").Replace what:=wS.Cells(i, "A"), replacement:="#", lookat:=xlPart
Next i
'「#」が含まれている行をmyRngに格納し、一気に削除//
Set myFound = .Range("A:A").Find(what:="#", LookIn:=xlValues, lookat:=xlPart)
If Not myFound Is Nothing Then
Set myFirst = myFound
Set myRng = myFound
Do
Set myFound = .Range("A:A").FindNext(after:=myFound)
If myFound.Address = myFirst.Address Then Exit Do
Set myRng = Union(myRng, myFound)
Loop
myRng.EntireRow.Delete shift:=xlUp
End If
End With
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
実際には、マクロであっても、なくても構わないと思いますが、基本的には簡単なマクロです。
仕組みは、
オートフィルターを掛ける→該当する言葉を1列から探す→それらを見えている範囲を選択する→削除
>特定の単語(札幌市、青森市、仙台市、等など)を
この場合は、「市」ですが、なかなか、そうはいかないのかもしれません。
検索する語そのものが、複数ある場合は、また、更にマクロのコードが加わりますので、その時は、ご相談ください。また、条件としては、オートフィルターが掛けられるような表の形態(四角形のデータ群)になっていることです。時々、そういう状態でない方の相談があり、マクロは動きませんでした、ということがます。
'//
Sub FoundWordDelRow()
Dim FirstCell As Range
Dim Rng As Range
Dim r As Range
Dim r2 As Range
Dim Crit1 As String
Set FirstCell = Range("A1")
Crit1 = "*あ*" 'センテンス中では、必ず、「*」を入れること
With ActiveSheet
If .AutoFilterMode Then
.AutoFilterMode = False
End If
FirstCell.CurrentRegion.AutoFilter _
Field:=1, Criteria1:="=" & Crit1
With .AutoFilter.Range
Set r = .Offset(1).Resize(.Rows.Count - 1) '項目行を保護するため
End With
On Error Resume Next
Set r2 = r.SpecialCells(xlCellTypeVisible)
If Err() <> 0 Then
Set r2 = Nothing
End If
On Error GoTo 0
.AutoFilterMode = False
If Not r2 Is Nothing Then
r2.Delete (xlShiftUp)
Else
MsgBox "検索語の『" & Crit1 & "』は見つかりませんでした。"
End If
End With
End Sub
'///
この回答へのお礼
お礼日時:2015/07/14 12:57
回答ありがとうございます。
オートフィルターは試してみたのですが、私の思うもの
とちょっと違っていたので、マクロで解決したいなと思っ
いました。
上記の方法も、試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Libre office マクロ
-
マクロを組んで作業するのは実...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
マクロを使って結合セルに丸を...
-
IF関数を使ってマクロを実行さ...
-
エクセルで縦に並んだデータを...
-
最小化したoutlook元に戻すマクロ
-
エクセルのマクロでワードの任...
-
ExcelのVBA。public変数の値が...
-
EXCELのVBAマクロでパソコンを...
-
非表示の列をすべて削除するマクロ
-
既存のマクロをコンボボックス...
-
VBSからのエクセル操作での初期...
-
ASP.NETからEXCEL起動
-
エクセルでA1セルに時刻をリア...
-
エクセルVBAでエラー、Changeの...
-
Wordのマクロでクリップボード...
-
VB初心者です。メールから添付...
-
Sub ***( ) と Private Sub ***...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
メッセージボックスのOKボタ...
-
Excelのセル値に基づいて図形の...
-
Excel マクロ VBA プロシー...
-
Excel・Word リサーチ機能を無...
-
Excel_マクロ_現在開いているシ...
-
ExcelVBAでPDFを閉じるソース
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで縦に並んだデータを...
-
TERA TERMを隠す方法
-
特定文字のある行の前に空白行...
-
Excel マクロでShearePoint先の...
-
UWLSの記録でマクロを作成し使...
-
エクセルで別のセルにあるふり...
-
マクロ実行時、ユーザーフォー...
-
ソース内の行末に\\
-
wordを起動した際に特定のペー...
おすすめ情報