
No.5ベストアンサー
- 回答日時:
#4です。
>A3以降のセルに「完」と入力して
C列に完と入れる行をつくって頂いていますか。
「完」があるのを聞いている列は、私のコード例では
If Cells(i, "c") = "完" Then
と有るように、C列です。
「完」が入る列がE列なら
If Cells(i, "E") = "完" Then
のように変えます。
この点大丈夫ですか。
>マクロ(sheet1,test2)を実行しましても
私のコードはモジュール名がtest02()と0が入っています。
この点大丈夫ですか。
ありがとうございました!(^○^)!
列を変えましたら出来ました!
ですが、項目の欄にも「完」と入力していたので2行消えてしまいました(00;)
これも要注意ですね!
テストでやっててよかったです!
本当に感謝感謝感謝でございますm(_ _)m
No.4
- 回答日時:
#3です。
Remarkに関して。(1)ActiveCell.EntireRow.Deleteの行はVBE画面の標準モジュールにコピペしないで下さい。みだしの積もりで入れたもの。
(2)>どういった表の配列の場合なのでしょう?
--->VBAを実行すると、どういった表の配列の場合な「る」でしょう?
ということでしたら
元の表の行(且つ列)の順序のままです。順序は保存されます。ForNext文がStepと-1が付いてますが
エクセルVBAでは「行削除は下行から処理」が、(コードが簡単になる、間違いを起こし難い)ポイントなんです。ここで私は良く失敗して、学んだものです。
(3)あと表のデータ部がA1セルから始まっていることを前提にしてます。
第3行目からデータが始まる(1,2行は見出し等)であれば
Sub test02()
d = Range("A3").CurrentRegion.Rows.Count
For i = d + 2 To 1 Step -1
If Cells(i, "c") = "完" Then
Rows(i).EntireRow.Delete
End If
Next i
End Sub
として下さい。
こんな疑問でしょうか。
再度ご回答感謝致しますm(_ _)m
今現在は、新規作成で新しい(データは空の)表を作って
実験していますので、まずimogasiさんのいうように
次の「第3行目からデータが始まる(1,2行は見出し等)であれば」のようにまず表を作ってみました!
ですので、1~2行まで見出し行にしまして、3行目以降がデータの行にしました。(とりあえず、私の場合A2~D2が項目の行でA3~D13をデータのセルにしました)
そして、マクロの編集画面で
Sub test02()
d = Range("A3").CurrentRegion.Rows.Count
For i = d + 2 To 1 Step -1
If Cells(i, "c") = "完" Then
Rows(i).EntireRow.Delete
End If
Next i
End Sub
を貼り付けてみまして、保存しました!
流れとしましては、だいたいこんな感じでよろしいでしょうか?
ですが、例えば、A3以降のセルに「完」と入力して、マクロ(sheet1,test2)を実行しましても、何も起こらないのですが、根本的にやり方が違うのでしょうか(T_T)
何度もすみません。もう少しだけお付き合いして頂けませんか?m(_ _)mお願い致します
No.3
- 回答日時:
(1)関数による解決
基本的なことを覚えておいてください。
「エクセルの関数では、行、列、シートの挿入や削除
は行えません」
あとセルに色を付ける(変える)とかも出来ません。
その理由は、エクセルは「セルに関数は値を返す」もので
、それにエクセルが限定しているからです。
関数は、VBAで、オブジェクトとかプロパティとか言われるもののなかで、セルのプロパティの「Value」だけを扱うものです。
別シートに、「元のセルに「完」の入った行」を除いて、その他の行を持ってくることは可能です。(注)
(2)VBAでは行削除が可能です。
ActiveCell.EntireRow.Delete
Sub test02()
d = Range("A1").CurrentRegion.Rows.Count
For i = d To 1 Step -1
If Cells(i, "c") = "完" Then
Rows(i).EntireRow.Delete
End If
Next i
End Sub
(3)手操作によって実現することは、ご存知可能です。
(注)
Sheet1のA1:C6に
山田福岡市1
大山熊本市完1
山下島原市2
上野宮崎市3
野上鹿児島市4
上原大分市完4
といれて(上記」D列は初め空白)
D列D1に
=COUNTBLANK($C$1:C1)と入れてD6まで複写。
上記のようになる。
Sheet2のA1に
=OFFSET(Sheet1!$A$1,MATCH(ROW(),Sheet1!$D$1:$D$10,0)-1,0)と入れてA4まで複写。
B1に=OFFSET(Sheet1!$A$1,MATCH(ROW(),Sheet1!$D$1:$D$10,0)-1,1)といれてB4まで複写。
結果Sheet2に
山田福岡市
山下島原市
上野宮崎市
野上鹿児島市
式を複雑にしないための部分があります。なぜB4までか、なぜ$D$10までなのか問わないでください。
この回答への補足
ごアドバイスありがとうございますm(_ _)m
>(2)VBAでは行削除が可能です。
ActiveCell.EntireRow.Delete
Sub test02()
d = Range("A1").CurrentRegion.Rows.Count
For i = d To 1 Step -1
If Cells(i, "c") = "完" Then
Rows(i).EntireRow.Delete
End If
Next i
End Sub
コードに関して質問してはダメでしょうか?
これをこのまま貼り付けた場合、どういった表の配列の場合なのでしょう?
それだけ教えて頂きましたら、あとは「どの個所をどう変えたらどうなるか…」とかは自分で実験してみます。
お願いしますm(_ _)m
No.2
- 回答日時:
例とした以下のようなマクロを組みます。
●A列が「済」や「完」の場合その行が削除されます。
網掛には対応していません。
●最初に検索開始と終了の行を入力して使います。
「済」や「完」を含み文字列の場合はプログラムを
修正する必要があります。
●(注意)実際に行が削除されますので重要なファイルのコピーを必ず取って置いてください。 !!!
●マクロはあくまでも参考例なので適当に
修正して下さい。
Sub Macro1()
'
'
Dim y, y1, y2 As Integer
Dim s1, s2, s3 As String
'------行の入力-------------------
y1 = InputBox("検索を開始する行番号")
y2 = InputBox("検索の最後の行番号")
For y = y1 To y2
s1 = "A" & CStr(y)
Range(s1).Select
s2 = ActiveCell.Value
Ok = 0
'---------A列の条件を検索-------------
If s2 = "完" Then
Ok = 1
ElseIf s2 = "済" Then
Ok = 1
End If
If Ok = 1 Then
s3 = CStr(y) & ":" & CStr(y)
Rows(s3).Select
Selection.Delete Shift:=xlUp
End If
Next y
End Sub
この回答への補足
具体的なコードを教えて頂きましてありがとうございますm(_ _)m
私はまだマクロに対して素人なのですが、まずVisualBasicEditorというのを開いてみまして…、いったんそのコードを貼り付けてみました…。
そして
検索する表の列は「A列」に揃えてみまして、
>y1 = InputBox("検索を開始する行番号")
>y2 = InputBox("検索の最後の行番号")
の中の「検索を開始する行番号」の所に「2(←開始の行が2行目からなので)」「検索の最後の行番号」の所に「13(←最後の行が13行目なので)」と入力して、マクロを実行してみたのですが、どうもうまくいきません…。
そもそもやりかたが違うのでしょうか?
コードを入力、編集してまでマクロを扱った事がありませんので、もしよろしければ、すみません、もう一度教えて頂けませんか?m(_ _)m
No.1
- 回答日時:
関数では存在しません。
方法1
「済」や「完」の列で並び替えて、削除する。
方法2
「データ」「フィルタ」「オートフィルタ」で
「済」「完」を非表示に設定する。
(消去ではないのでファイルサイズは減りません。)
方法3
VBAで削除する。
この回答への補足
ご回答感謝致します!
>「データ」「フィルタ」「オートフィルタ」で
「済」「完」を非表示に設定する。
例えば、あるセルが「済」となった行を非表示にするには「手動」でするしかないでしょうか?
非表示でもそれが「自動化」できましたら、それも有効的な方法かも知れません!
たびたび質問で申し訳ありませんが、ご存知でしたらよろしくお願いしますm(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) IFERROR(IF()IF())のような形の構文が作れません 2 2023/02/05 17:51
- Excel(エクセル) エクセルの数式で教えてください。 2 2023/02/10 11:41
- Excel(エクセル) <スプレッドシート>IF関数の複数条件について 5 2022/10/27 14:38
- Visual Basic(VBA) Excelにて、シート1の行を削除するとシート2のシート1と同じ番号の行も削除したい 3 2022/05/08 04:24
- Excel(エクセル) 【エクセル】COUNTIFの検索条件が可変する数字の場合の数式 1 2022/09/27 15:34
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:02
- Visual Basic(VBA) VBA初心者です。 VBAで行単位で条件付き書式の色をカウントしたいです。 大量のデータがあるExc 3 2022/06/08 10:00
- Excel(エクセル) Excelの関数で実現可能か知りたいです 5 2023/08/06 08:58
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- その他(Microsoft Office) エクセルの関数について 4 2022/07/30 16:42
このQ&Aを見た人はこんなQ&Aも見ています
-
条件に応じて特定の行を非表示にしたい
Excel(エクセル)
-
EXCELで条件に合わない行を削除して詰めて新しいシートに表示したいのですが
Excel(エクセル)
-
エクセル・条件付で行を削除する方法
Excel(エクセル)
-
-
4
エクセルで特定の文字が入ってる列を削除方法
Excel(エクセル)
-
5
エクセルで特定の行を削除したいのですが。
Excel(エクセル)
-
6
エクセルで特定の列が0表示の場合、その行を非表示にしたい
Excel(エクセル)
-
7
エクセルである行以下全部を削除する方法
Excel(エクセル)
-
8
エクセル 指定した文字列を含む列を削除するには
Excel(エクセル)
-
9
指定した文字があった場合、その行を削除するマクロが欲しいです
Excel(エクセル)
-
10
エクセル2016の特定の文字列を含む行を削除
Excel(エクセル)
-
11
【Excel VBA】複数ある特定の文字列を含む行を削除
Excel(エクセル)
-
12
エクセルで特定の文字列が入った行を非表示にしたい
Excel(エクセル)
-
13
Excelでセル参照したとき、書式も一緒に持ってくるには?
Windows Vista・XP
-
14
エクセルの質問です。条件によってセルに斜線を引きたいのですが。
その他(OS)
-
15
Excelで、任意の言葉で始まる行のみを、行ごと一括で削除する方法を教
Excel(エクセル)
-
16
エクセルの参照行の挿入による追加と行の削除に対応できる関数を教えてくだ
Excel(エクセル)
-
17
エクセルでアルファベットか数値の判定をしたいのですが
Excel(エクセル)
-
18
条件が合致する列を削除したい(VBA)
Excel(エクセル)
-
19
【VBA】条件に一致しない行を削除したい 複数条件
Visual Basic(VBA)
-
20
EXCELで2列を参照し、重複するものを横に並べたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のセルだけ結果がおかしい...
-
エクセルのVBAで集計をしたい
-
【関数】同じ関数なのに、エラ...
-
Office2021のエクセルで米国株...
-
【マクロ】【配列】3つのシー...
-
vba テキストボックスとリフト...
-
エクセルのdatedif関数を使って...
-
【画像あり】オートフィルター...
-
【マクロ】アクティブセルの時...
-
【マクロ】列を折りたたみ非表...
-
他のシートの検索
-
【マクロ】3行に上から下に並...
-
【条件付き書式】シートの中で...
-
ページが変なふうに切れる
-
【マクロ】実行時エラー '424':...
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
【マクロ】オートフィルターの...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】【相談】Excelブック...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル
-
【マクロ】WEBシステムから保存...
-
エクセルの循環参照、?
-
エクセル ドロップダウンリスト...
-
エクセルのdatedif関数を使って...
-
特定のセルだけ結果がおかしい...
-
【マクロ】A列にある、日付(本...
-
【マクロ】EXCELで読込したCSV...
-
【マクロ】アクティブセルの時...
-
【エクセル】期限アラートについて
-
iPhoneのExcelアプリで、別のシ...
-
【関数】同じ関数なのに、エラ...
-
Excelの新しい空白のブックを開...
-
【マクロ】3行に上から下に並...
-
【マクロ】宣言は、何のために...
-
VBA チェックボックスをオーバ...
-
Excelについての質問です 並べ...
-
【マクロ】アクティブセルの2...
-
【関数】不規則な文章から●●-●●...
おすすめ情報