• ベストアンサー

Excelについて

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 (1) オートフィルタを使えば、このようになります。 ご覧の通り、結構、面倒ですが、大量の場合は、これが一番早いかもしれません。なお、0の入っている行全体という意味で取っていますので、EntireRow を使用していまする Sub FindZeroRowDelete() Dim i As Long If ActiveSheet.AutoFilterMode = True Then   ActiveSheet.AutoFilterMode = False End If With Range("F1", Range("F65536").End(xlUp))   .AutoFilter Field:=1, Criteria1:="0"   On Error Resume Next   i = .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible).Count   On Error GoTo 0   If i > 0 Then    .Offset(1).Resize(.Rows.Count - 1).EntireRow.Delete   End If   .AutoFilter   '1行目のチェック   If .Cells(1).Value = 0 Then .Cells(1).EntireRow.Delete End With End Sub (2) Sub ReplaceString2Figure()  With Range("A1", Range("A65536").End(xlUp))   On Error Resume Next   .SpecialCells(xlCellTypeConstants, 2).NumberFormatLocal = "0000"   .SpecialCells(xlCellTypeConstants, 2).Value = 900   On Error GoTo 0  End With End Sub なお、Private キーワードは、一般的には、イベントやサブルーチンに使用するものです。なお、セル一つずつ文字列を調べる場合は、VarType でないと、取れないと思います。

rx-z5815
質問者

お礼

回答ありがとうございます。 教えていただいた方法でうまくいきました。

関連するQ&A

  • エクセル2010 繰り返しマクロ

    (1)g列の空白の最上行に =SUMPRODUCT(min((a:a>=f2)*(a:a<f2+730)*e:e)) と入力。 そのセルをコピーし、同じセルに値を上書き貼り付け ↓ (2)a列に(1)のセルの左隣のセル以下の数値がある行の、b列を削除 (画像の場合、(1)のセルがg1の場合、b2,b3を削除する) というのを、f列に数値がある行だけ繰り返すマクロの構文を教えてください。 大変お手数おかけいたしますが、どうぞよろしくお願いします。

  • エクセルでのデータの抽出

    エクセル2007で教えていただきたいのですが、a1からc1セルに特定の文字列が 入っていてa2からc2セルにも特定の文字列が入っています。 行1に入っている文字列が「あ」で、且つ行2に入っている文字列が「い」を満たす、 その下の行3に入っている数値の合計は、どうすれば求められるでしょうか。 ご教授お願い致します。

  • エクセルのことで

    A列の各セルに英単語が1文字ずつ何百行に渡って入力されているとします。 1. A1セルからA列の末端のセルまでを一気に反転させる方法はあるでしょうか。 ようは、A1セルを反転させた後に末端のセルまでスクロールさせることなくA列全てを反転させたいのですが。 2. A列で同じ文字が入力されている行を瞬時に削除する方法はあるでしょうか。

  • エクセル VBAで入力

     エクセル初心者です。 条件付き書式で一つのセルに特定の文字列を入力した際に、そのセルと任意の法則性のある複数のセルに(入力内容は無関係でセルの行・列に法則性があります)特定の塗りつぶしを行いたいのですが、どのようにすればよいのでしょうか。 条件付き書式をすべて設定する(手打ち)するのが最も確実で間違いの内方法ではありますが、新規に行・列を挿入した場合、その行・列には条件付き書式が設定されていませんので、意図した作用を起こさなくなってしまいます。 上記ではよくわからないと思いますので、具体的な例を入れさせていただきます。 例)) 任意のセル(A13)に特定の文字列(OK)と入力する。 特定文字列に反応して、そのセルの列に(A12からE12、F12からH12)赤色の塗りつぶしを入れる。 上記は1セルに対して行われますが、VBAを使用してA12からA5000までを検索対象として持たせて、それぞれのセルの列に対して塗りつぶしを入れられるようにしたいと思っています。

  • エクセル関数について

    エクセル関数について質問です。 簡単に説明すると特定のセルに特定の数値を入力するとその行の別のセルの数値を別のセルに表示させたい。 たとえば     A      B       C 1  100            2  200      1      100 3  300      1      300 4  400 5  合計            400 上記の様になっていた場合 A列は定数で固定です。B列のセルに1と入力(1でなくてもよい)した行のA列の数値を Cに表示したいのですが、 C列にどの様な関数を使ったらいいんでしょうか?宜しくお願い致します。

  • COUNTIFで特定の文字列を含む値のカウント方法

    Excel2010を使っている者です。 COUNTIF関数で特定の文字列を含むセルの数をカウントしたいのですが、結果がゼロになってしまいます。 具体的には A列の1行目から900行目までに以下のように番号が振ってあって、その中で1994を含むセルの数を数えようと思っています。 計算式として「=COUNTIF($A$1:$A$900,"1994")」と入力したのですが、戻り値が0になってしまいます。 なお、A列は数値にしても文字列にしても結果は変わらず、「=COUNTIF($A$1:$A$900,"1994*")」とワイルドカードを使った検索にしても同じく0になってしまいます。 1994000001 1994000002 1994000005 ~ 2009111112 2009111117 もう一つ関連した質問をさせていただきますが、そもそもこの関数で特定の文字列を含む検索をかけたいときは、ワイルドカードの*を使わないとうまく計算できないものなのですか? よろしくお願いいたします。

  • excelについて質問です

    下記excel表について質問です。 あるセル内の文字列に、特定の数字が混ざっており、 他のセル内の文字列でも同じ数字が重複されていないかを探し、 そこに何かしらマーキング(塗りつぶし)していく方法があれば知りたいです。 -------------------- A 1○△100× 2> □200? 3□200< - 4□100- ) -------------------- 例えば、セルA1とセルA4で100が重複していることが分かります。 セルA2とセルA3で200が重複していることが分かります。 これが1000行以上だと、手でチェックしていくのも工数がかかってしまいます。 何かいい方法はございませんでしょうか。 また、探したい特定の数字が何なのか、それは私も事前には分かりません。 どうぞご教授ください。

  • エクセルデータのカウント

    A1:E5にデータが入力してあります。(空白セルもあり) C列、D列、E列のどれか1つのセルにでもデータ(数値) が入っている行の数をカウントして、A6に表示する 方法を教えてください。 たとえばF列に、=COUNT(C1:E1)を計算する行を入れて、 A8で=COUNTIF(F1:F5,">=1")をすれば、できるのだと思うのですが、 そのために行を増やしたくないのです。

  • エクセルのマクロ記述について

    下記の処理をエクセルのマクロで行いたいのですが、どのように記述したよいか教えてください。 4行目から入力されている行まで下記の処理をマクロで行う。 1.J列のセル入力がCIRCLEの行で、B~E列の数値が同じセル間を結合する。 2.K列のセル入力がCIRCLEの行で、F~I列の数値が同じセル間を結合する。 3.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じ場合、B列をB列の数値XC列の数値とし、B~E列のセルを結合する。 4.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じ場合、F列をF列の数値XG列の数値とし、F~I列のセルを結合する。 5.J列のセル入力がOBLONG_XまたはOBLONG_Yの行で、B,D列及びC,E列の数値が同じでない場合、B列をB列の数値XC列の数値とし、B,C列のセルを結合する。又、D列をD列の数値XE列の数値とし、D,E列のセルを結合する。 6.K列のセル入力がOBLONG_XまたはOBLONG_Yの行で、F,G列及びH,I列の数値が同じでない場合、F列をF列の数値XG列の数値とし、F,G列のセルを結合する。又、H列をH列の数値XI列の数値とし、H,I列のセルを結合する。 7.J列のセル入力がSHAPEの行で、B~E列は何もしない 8.K列のセル入力がSHAPEの行で、F~I列は何もしない

  • エクセルの行選択

    複数のセルに文字が書き込まれているのですが、特定の数値を含むセルの行だけを選択したいのですが。たとえばA6とB2059のセルの数値が0だとして、その行をすべて選択削除したいというものです。よろしくお願いします