• ベストアンサー

整数行を残し小数点の行を削除するには?

エクセルで整数行を選びそれ以外を削除することが出来ますか? C列に測定時間があり、整数秒のみ取り出すマクロを作成しようとしているのですが、わかりません。 教えていただきたいのです。詳しい方よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#203218
noname#203218
回答No.2

一例です。 行を削除する場合は最終行側から行うのが基本となります。 添付画面ではC列データに途中で空白は無い事になっていますが、念のため空白セルを除外するようにしています。 Sub test() Dim i As Integer Dim MaxRow As Integer 'C列最終行取得 MaxRow = Cells(Rows.Count, 3).End(xlUp).Row 'C列セルの値がintで整数にした値と同じ場合は整数、他は小数点を含む。小数点を含む場合は行削除 For i = MaxRow To 1 Step -1 If Cells(i, 3) <> "" Then If Int(Cells(i, 3)) = Cells(i, 3) Then Rows(i).Delete Shift:=xlShiftUp End If Next End Sub

udonnteisyoku
質問者

お礼

回答有難うございました。参考になりました。

udonnteisyoku
質問者

補足

If Int(Cells(i, 3)) = Cells(i, 3) Then でデバックが出てしまうのですが。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (3)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.4

簡単に sub macro1()  dim Target as range  dim s as string  set target = range("A2:O" & cells(rows.count, 1).end(xlup).row)  s = activesheet.name  worksheets.add  range("B2").formula = "=INT(" & s & "!C3)=" & s & "!C3"  target.advancedfilter action:=xlfiltercopy, criteriarange:=range("B1:B2"), copytorange:=range("A3"), unique:=false  range("2:2").delete shift:=xlshiftup end sub ぐらいで。

udonnteisyoku
質問者

お礼

回答ありがとうございます。 

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

こんばんは! >C列に測定時間があり、 とありますので、画像通りC3セル以降のデータをSheet2のA列に表示する一例です。 Sheetモジュールにしていますので、Sheet1のSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub Sample1() 'この行から Dim i As Long, cnt As Long Worksheets("Sheet2").Range("A:A").ClearContents For i = 3 To Cells(Rows.Count, 3).End(xlUp).Row If Cells(i, 3) * 10 Mod 10 = 0 Then cnt = cnt + 1 Worksheets("Sheet2").Cells(cnt, 1) = Cells(i, 3) End If Next i End Sub 'この行まで ※ 上記コード内の >If Cells(i, 3) * 10 Mod 10 = 0 Then は >If Cells(i, 3) Mod 1 = 0 Then でOKだと思ったのですが、 望んでいた結果になりませんでしたので、敢えて10倍した数を10の除算の余りがあるかどうか? とやってみました。 なぜ >If Cells(i, 3) Mod 1 = 0 Then ではダメなのか当方にも理由が判りませんが、この程度でごめんなさいね。m(_ _)m

udonnteisyoku
質問者

お礼

回答有難うございました。勉強になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

小数点の付いた数字のみ削除したいなら、データ範囲を選択し、Ctrl+Hで置換ダイアログを出し、検索する文字列に「*.*」を入力して「すべて置換」してください。 データを詰めて表示したなら、その選択状態のままCtrl+Gでジャンプダイアログを出し、「セル選択」から「空白セル」にチェックを入れ、右クリックから「削除」を選択し「上方向にシフト」にチェックを入れ「OK」してください。 マクロにする必要があるなら上記の操作を「マクロの記録」で記録してみて下さい。

udonnteisyoku
質問者

お礼

回答いただき有難うございます。置換の仕方勉強になりました。有難うございます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excelで、ある条件に対し正なら行を削除したい

    Excelを用いてグラフを作成したいと思っています。 しかし、データ量が多く、グラフが読みにくくなるため、 間引きをおこなうことにしました。 間引く際に一つ一つけしていくととても時間がかかるので マクロを作りたいと思ってます。 しかしはじめてマクロを作るため、調べてもよくわからなかったので 教えていただきたく思います。 データは一秒感覚で測定したデータが三万行ほどになっています。 それを三十秒感覚に間引いてグラフにしたいと思っています。 シートにはこのように記述しています 時間 |測定結果 12:34:56|○○ 12:34:57|○○ : 時間の欄の下二桁が00と30のとき以外の行を削除したいです。 一部分の判断が難しいようなら、一番左に列を挿入し、 00、01、02と秒数のとこだけ書き出し、それを用いて判断するのもいいかなと 思っています。 マクロに詳しい方いましたら、どのようにして組んだらいいか教えてください。 お願い致します。

  • エクセルVBAで特定の文字を含まない行を削除する

    エクセルVBAで特定の文字列(たとえば” りんご ”)を含まない行を削除するものを作成したいです。 ” りんご ”がB列だけにしかない場合は作成できたのですが、 ” りんご ”がB列とC列にも含まれていて どちらかに含まれていたら、その行を残して、それ以外の行を削除したい場合にはどうしたらいいのかわかりませんでした。 教えてください。 

  • エクセルで30万行から特定の行を削除したいのですが。

    エクセルで30万行から特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロを使うのでしょうか? また、マクロを使う場合、どの位時間がかかりますでしょうか?行数が30万行ありますので。(PCのスペックは、Core2Duo 1.40GHz/メモリ3GBです) 宜しくお願いいたします。

  • 行を削除するマクロ

    a列には数値が入っています。 2行目から、a列の数値が最大かつ最下の行(この場合は12行目)までを削除するマクロのvbaの構文を教えてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

  • 小数点以下2桁ある数字の列削除

    この1個前で質問させて頂きましたが、上手く伝わりませんでしたので、今1度説明させて頂きます。 0~6000秒間で、タンク内にガスを注入し続けて、圧力の変化を観察しました。 ※圧力の変化については、ここが本題では無いので無視して下さい。 時間は、0秒▶︎0.01秒▶︎0.02秒▶︎0.03秒…と順々にカウントして、6000秒まで測定を行いました。 測定データをExcelのA行に時間(秒)、B行に圧力値を記入しまとめました。 そこから、グラフを作っていくのですが、ちょっとExcelを触ろうとするならば、フリーズしてしまいます。 そこで、時間の数値で、小数点以下2桁を持っている数字は全て削除したいです。 例)0.01、20.59、300.45、1000.67等を消去。0.1、10.2、300.5、100.1は残したい。 です。 一気に整理する方法を教えて下さい。

  • エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法

    エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法 表題のとおりですが、エクセルで特定の文字が含まれる行から特定の文字が含まれる行の削除方法について教えてください。 特定の文字(C列にあります)が含まれている行から5行下の先ほどとは違う文字(これもC列にあります)までを削除したいのです。 それがたくさんあり大変困っております。 エクセルを起動してマクロの記録を行い手作業で5回削除し記録終了としたのですが、 5回以上削除したい場合は操作が行われませんでした。 これをマクロで行うにはどういう式を作ればいいでしょうか? 宜しくお願いします。

  • 行を削除するマクロ2

    a列には0から2の数値が入っています。 2行目から、a列の数値が2かつ最下の行(この画像の場合は12行目)までを削除するマクロのvbaの構文を教えてください。 ただし、a列の数値がすべて2未満の場合、行は削除しないようにしてください。 削除するのは行全体で、a列だけではありません。 エクセル2010です。 どうぞよろしくお願いします。

  • VBA アクティブ行の削除

    エクセルで、アクティブにしているセルの行のA列からL列のみを削除というマクロを組みたいのですが、どのように記述したらいいのでしょうか? アクティブなセルはA列~L列のどこにあっても、その行のA列-L列を削除というようにしたいです。 (例1) A1がアクティブだった場合、A1~L1が削除される (例2) B4がアクティブだった場合、A4~L4が削除される すみませんが、お分かりになる方がいましたらよろしくお願いいたします。

  • エクセルで特定の行を削除したいのですが。

    エクセルで特定の行を一発で削除したいのですが、やり方がわかりません。 どなたか詳しい方お教えいただけませんでしょうか? やりたいことは、B列に、特定の文字が有れば、その行全部を削除して上方向にシフトしていきたいのですが、マクロとかを使うのでしょうか? 宜しくお願いいたします。

  • 不要行を削除して上に詰めていく

    エクセルマクロでA~D列の4列につながる4行一組が繰り返される同じパターンの色帯でA列の「生」という一文字の下に無色がなければ4行ごと削除していって上に詰めていってください。

このQ&Aのポイント
  • 「おじさん構文」とは、一部の人たちが女性がよく使うメッセージ構文を指しています。
  • 女性がよく使う表現やスタイルには、「ヤッホー(^_^)」「オハヨー!」「お疲れサマ!」などの挨拶や近況報告が含まれています。
  • しかし、この「おじさん構文」を批判する記事は、男性をバカにしようとしているように見える一方で、結果的に女性自身がバカにされるものであり、批判の対象となっています。
回答を見る

専門家に質問してみよう