A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>特定文字列は、各列に1つあり、行の位置はバラバラです。
特定文字列が各列に1つしか無い(1つあるだけ=2つ以上はゼッタイにない)ことは保証されているとします。
(まぁ,その保証ができない=やっぱり2つ以上有るかもしれないなら,どーしたいのかあなたの方で決めて,各列に幾つあるか調べて適切に対処するマクロにするだけですけどね)
それからいわずもがなですが「セルを削除する」のであって,行を削除したりはしないものとします。
作成例:
sub macro1()
dim c as range
set c = cells.find(what:="あ", lookin:=xlvalues, lookat:=xlpart)
do until c is nothing
c.resize(5, 1).delete shift:=xlshiftup ’#
set c = cells.find(what:="あ", lookin:=xlvalues, lookat:=xlpart)
loop
end sub
#大概こういう所が曖昧なんですが
>その特定文字列を含み以下5行分のセルを削除
縦に5つのセルを削除して上に詰めるとしますが,もし違うなら適切に応用して下さい。
No.4
- 回答日時:
お望みのように、
> 特定文字列を含み以下5行分のセルを削除し、上に詰めたい
と言う処理をマクロ化するのはそんなに難しい話ではなさそうです。
が、私はあえて安易に提案するのはやめておきます。
具体的に理由を申し上げると、
可能性の問題ではあるのですが、例えばデータが・・・
いわし
あじ
さんま
かつお
さけ
まぐろ
ぶり
かんぱち
ぼら
たい
とあったとします。
特定の文字列「さ」を含む行とその下4行(正味で5行)を削除して上に詰めましょう。
人間の目で見ると「さ」を含むモノは「さんま」「さけ」ですので、
「さんま」から5行、「さけ」から5行を削除した形
いわし
あじ
たい
が正解のような気がします。
エクセル(VBA)では、通常の場合は1行ごとに削除していくものですから、
(1)上から見に行くとして
まずヒットするのが「さんま」です。
じゃぁ、さんまから下、合計5行削除しましょう。
いわし
あじ
かんぱち
ぼら
たい
「さけ」も削除されてしまったので、こんな結果が返ってきます。
(2)下から見に行くと
この場合は「さけ」が先にヒットしますので、5行削除すると
いわし
あじ
さんま
かつお
たい
こうなりますね。
さらに検索は続きますので、今度は「さんま」がヒットしますので
これを含む5行を削除しちゃいます。
よって、最終的な結果は
いわし
あじ
しか残りません。
(1)のケースでは「さけ」から5行を削除すると言う条件が適用されませんし、
(2)のケースでは「たい」は本来の削除対象では無いのに削除されてしまいますね。
このように
> 特定文字列を含み以下5行分のセルを削除し、上に詰めたい
と単純にやると必ず「矛盾」が生じてしまいます。
これのどちらを「求める結果」とするのか、
あるいはどちらでもなく、当初の「目で見た結果」が欲しいのか。
マクロを組む時はこのあたりも重要なポイントの一つです。
No.3
- 回答日時:
Option Explicit
Sub RowsDelete()
Const xHeads = 1
Const xKey = "*特定の文字列*"
Dim xText As Range
Dim kk As Long
Dim nn As Long
Dim xMatchRow(1 To 100) As Long
kk = 1
For Each xText In ActiveSheet.UsedRange
If xText.Value Like xKey Then
xMatchRow(kk) = xText.Row
kk = kk + 1
End If
Next
'下から
For kk = kk - 1 To 1 Step -1
nn = xMatchRow(kk)
If (nn <> 0) Then
Rows(nn & ":" & nn + 4).Delete Shift:=xlUp
End If
Next
End Sub
No.2
- 回答日時:
No.1です!
たびたびごめんなさい。
投稿後に思ったのですが、
前回のコードでは、仮に5行以内に「特定の文字列」が複数あった場合は
必要な行まで削除されてしまいます。
もしそのような状況があれば別の方法を考える必要があると思います。
例えば
「特定の文字列」があれば一気に5行を削除するのではなく一旦5行分のデータをクリアし、
最後に空白行を削除する!
といったような具合に・・・
とりあえずはこの程度で!
どうも失礼しました。m(_ _)m
No.1
- 回答日時:
こんにちは!
>特定の文字列を含むセル
とありますので、そのセルが完全一致ではない!というコトですよね?
あるセルに「あ」を含む文字列がある場合の一例です。
Sub test() 'この行から
Dim i As Long
Dim j As Long
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
j = Cells(i, Columns.Count).End(xlToLeft).Column
If WorksheetFunction.CountIf(Range(Cells(i, 1), Cells(i, j)), "*あ*") Then
Rows(i & ":" & i + 4).Delete
End If
Next i
End Sub 'この行まで
※ ある文字部分「あ」は実状に合わせて変更してください。
※ 質問では最終列が判断できないので、各行ごとに最終列を取得するようにしてみました。
こんなんではどうでしょうか?m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの条件付き書式で*を使いたい 4 2022/05/13 16:49
- Excel(エクセル) Excelのマクロで、特定のセルから順番に値を取得したい 5 2022/12/06 15:34
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Visual Basic(VBA) 【至急】 当方初心者です。 マクロについて知恵をお貸しください。 ★したい動作 ①リストE列2行目か 4 2022/09/29 18:56
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 16:07
- Excel(エクセル) 【Excel】指定のセル内容を基に別シートのセルを検索して選択する【VBA】 1 2022/06/16 16:16
- Visual Basic(VBA) 列を指定して値を左から5文字にそろえる 1 2022/06/10 20:28
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
教えてgooの機能に関するアンケ...
-
教えてgooの投稿が運営に消され...
-
回答が付かなかったので、再質...
-
喧嘩をしてLINE削除され、 また...
-
告白してフラれた相手の連絡先...
-
バッチファイルを使用したsql@p...
-
教えてgooでは、自分の質問が削...
-
今日の日付が過ぎたらその行を...
-
日テレニュースHP、記事削除は...
-
VBA:Openステートメントで開い...
-
【エクセル】セル内の右側のみ...
-
エクセルで住所の混在する「丁...
-
教えてgooで、質問や回答が削除...
-
エクセルVBAで行削除時にエラー...
-
【C#】ifと#ifの違い、そして#e...
-
同じ質問
-
もう関わりたくない人がいたらL...
-
女友達にLINEしたら、既読スル...
-
勝手に消えた質問
-
教えて!gooで、自分がした回答...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA:Openステートメントで開い...
-
「医者も看護師も自分に嫌がら...
-
ハメ撮りが流出したら
-
指定した文字があった場合、そ...
-
教えて!gooにはどのカテゴリが...
-
もう関わりたくない人がいたらL...
-
真剣な質問ほど消されるのはど...
-
Facebookメッセンジャーの不具合
-
インスタグラムのギャラリーの...
-
エクセルで住所の混在する「丁...
-
回答してる間に質問が消えるっ...
-
アクセスにおいて間違って削除...
-
喧嘩をしてLINE削除され、 また...
-
バッチファイルを使用したsql@p...
-
Facebookに自分が四つもアップ...
-
ウェブページへのアクセス不可 ...
-
同じ質問
-
日テレニュースHP、記事削除は...
-
女友達にLINEしたら、既読スル...
-
エクセルVBAで行削除時にエラー...
おすすめ情報