No.9ベストアンサー
- 回答日時:
こんなところへ質問するよりマクロの記録をなぜとって見ないのですか。
それをみて変えるべきところ、変え方を勉強してこそ、力が付くのです。
ーー
>B列のとあるセルに「あああ」と入力されているなら
B1から「あああ」の一つ上の行まで削除する』というコードが知りたいです
と
>「あああ」がB100に入力されているとしたら
1行目から99行目まで削除して「あああ」を「B1」に持ってくるようにしたいです
は内容が違うのではないですか。質問表現はしっかり。
ーー
マクロの記録をとると
Sub Macro1()
Columns("B:B").Select
Selection.Find(What:="あああ", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Activate
Range("B1:B6").Select
Range("B6").Activate
Selection.Delete Shift:=xlUp
End Sub
ここで問題はB6が実際では変わる。そこで
(Selectionなどマクロの冗長さを取り去り、)「あああ」の発見行番号を捉えるように改良して
Sub Macro1()
r = Columns("B:B").Find(What:="あああ", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Row
MsgBox r
Range("B1:B" & r).Select
Selection.Delete Shift:=xlUp
End Sub
とする。
ーー
Selection.Delete Shift:=xlUp
はセルの削除だが行の削除なら、WEBで
「エクセルVBA 行の削除」で照会のこと。
http://www.k1simplify.com/vba/tipsleaf/leaf238.h …
--
Sub Macro1()
Columns("B:B").Select
r = Selection.Find(What:="あああ", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, MatchByte:=False, SearchFormat:=False).Row
Rows("1:" & r).Delete
End Sub
No.8
- 回答日時:
#2です。
ゴメンナサイ。#7だと、1行目に見つかったときエラーになります。
以下に修正。
Sub Test()
Dim lngYLine As Long
Dim Obj As Object
Set Obj = Cells.Find("あああ")
If Obj Is Nothing Then
MsgBox "「あああ」は見つかりませんでした。 "
Else
lngYLine = Cells.Find("あああ").Row - 1
If lngYLine > 0 Then
Rows("1:" & lngYLine).Select
Selection.Delete Shift:=xlUp
Range("A1").Select
End If
End If
Set Obj = Nothing
End Sub
No.7
- 回答日時:
#2です。
Sub Test()
Dim lngYLine As Long
Dim Obj As Object
Set Obj = Cells.Find("あああ")
If Obj Is Nothing Then
MsgBox "「あああ」は見つかりませんでした。 "
Else
lngYLine = Cells.Find("あああ").Row - 1
Rows("1:" & lngYLine).Select
Selection.Delete Shift:=xlUp
Range("A1").Select
End If
Set Obj = Nothing
End Sub
No.6
- 回答日時:
VBAがお望みならこんな感じでしょうか。
Sub test01()
On Error GoTo line
x = Application.WorksheetFunction.Match("あああ", Columns("B:B"), 0)
If x = 1 Then
Exit Sub
Else
Rows("1:" & x - 1).Delete
End If
Exit Sub
line:
MsgBox "見当たりません", vbCritical, "Σ( ̄ロ ̄lll) "
End Sub
No.5
- 回答日時:
No.4です。
申し訳ありません。
「あああ」以外を空白行と勘違いしていました。
無視して下さい。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) Excel リンク先のエクセルファイルの削除 同時に行を削除したい 1 2022/11/29 16:20
- Visual Basic(VBA) Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる 3 2022/12/21 09:07
- Visual Basic(VBA) RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってく 1 2023/02/28 22:43
- Excel(エクセル) エクセルでエラーを無視して一番左側のセルの値を返したい 2 2023/07/27 13:06
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Excel(エクセル) エクセルの複写について 4 2022/04/10 01:02
- Excel(エクセル) 【再度】Excelの関数について教えてください。 4 2023/07/28 13:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
行を削除する時に警告したい
-
メルカリに関しての質問です。 ...
-
リストボックスでの選択項目分...
-
VBA=一定時間エクセルの入...
-
「K」のみのグレーと「K」を使...
-
Word 2010で画面に2ページ並ん...
-
Teams会議の上のメニューが消え...
-
PDFの一部のページを削除する方...
-
エクセルで一度作ったユーザー...
-
Excel画面でメニューバーとタイ...
-
ワードのサイズ変更による文字...
-
エクセル画面上端のファイル名...
-
bilibiliという動画サイトの動...
-
タイトルバーしか表示されない
-
一太郎で封筒の宛名印刷したい...
-
ワード文書 B5→A4変換
-
Fineprint5でファイルのフルパ...
-
VBE画面とシート画面を同時に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
onenoteでノートブックを削除出...
-
特定のプロジェクトを削除するには
-
リストボックスでの選択項目分...
-
メルカリに関しての質問です。 ...
-
ODBCの自動登録について
-
Excelで行挿入イベントをハンド...
-
行を削除する時に警告したい
-
MP3プレーヤーに書き込んだ曲を...
-
エクセルのVBAについて
-
Bamboo DockがDockから消えません
-
エクセルの編集(行間隔を一度...
-
SONY製RDR-HX50での「まる録の...
-
Word : ページ削除の仕方
-
Excelのチェックボックスの消...
-
Windows Mailで、アドレス帳の...
-
Wordで選択領域のバックスペー...
-
EXCEL2007で、挿入したチェック...
-
iPOD shuffle 曲の削除
-
FOMAカードの電話帳の削除の仕方
-
MSN Hotmailアドレスの削除
おすすめ情報