Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8010 / 13645 ツリー ←次へ | 前へ→

【35479】行の削除について ころころ 06/3/6(月) 16:45 質問[未読]
【35482】Re:行の削除について Jaka 06/3/6(月) 17:13 発言[未読]
【35501】Re:行の削除について ちび 06/3/6(月) 22:37 お礼[未読]
【35509】Re:行の削除について ころころ 06/3/7(火) 9:31 質問[未読]
【35528】Re:行の削除について Jaka 06/3/7(火) 14:02 回答[未読]
【35538】Re:行の削除について Kein 06/3/7(火) 15:00 回答[未読]
【35557】Re:行の削除について ころころ 06/3/7(火) 18:13 お礼[未読]

【35479】行の削除について
質問  ころころ  - 06/3/6(月) 16:45 -

引用なし
パスワード
   こんにちは、お世話になります。
一つのブック内にシートが30枚ぐらい入っています。
シート内にはA列〜F列までデータが入っていて、
B列にはデータが入っている場合と入っていない場合があります。
「B列が空白の行をすべて削除する」という事を
すべてのシートに対して行いたいのですが
どうしたらよいでしょうか?

【35482】Re:行の削除について
発言  Jaka  - 06/3/6(月) 17:13 -

引用なし
パスワード
   マクロじゃないけど、
B列を選択して、編集 → ジャンプ、セルの選択 → 空白セル を選んでOK。
選択されているセルを右クリック、削除 → 行全体 を全部のシートにやる。
注)空白セルは、関数の「=""」は含まれません。

これをマクロ記録して全てのシートに行えば良いです。

【35501】Re:行の削除について
お礼  ちび  - 06/3/6(月) 22:37 -

引用なし
パスワード
   Jakaさん

お返事ありがとうございます。
マクロの記録を取ってやってみます。

【35509】Re:行の削除について
質問  ころころ  - 06/3/7(火) 9:31 -

引用なし
パスワード
   昨日教えていただいた方法で実行してみたらエラーが出るシートが出てきました。

1つのブック内にシートが30〜40枚ほどあるのですが
テキストファイルをインポートした物なので
A列〜F列までデータがちゃんと入っているシートや
A列だけデータが入っていてB〜F列が空白のシートも混在しています。

A列だけデータ有りのシートの場合、エラーになって止まってしまいます。

そこでB列が空白ならそのシート自体を削除する方法があれば
教えてほしいのです。
(B列に数値が入っているデータが欲しいだけなので
 B列が空白ならそのシート自体も不要なのです。)

たびたび申し訳ありませんが、よろしくお願いいたします。

【35528】Re:行の削除について
回答  Jaka  - 06/3/7(火) 14:02 -

引用なし
パスワード
   If Application.CountA(Columns(2)) = 0 And _
  Application.Count(Columns(2)) = 0 Then
  MsgBox "B列に何も無いです。"
  'Application.DisplayAlerts = False
  ActiveSheet.Delete
  'Application.DisplayAlerts = True
Else
  MsgBox "B列に何か有ります。"
End If

【35538】Re:行の削除について
回答  Kein  - 06/3/7(火) 15:00 -

引用なし
パスワード
   Sub Check_B_Column()
  Dim i As Integer
  Dim FR As Range, MyR As Range
 
  With Application
   .ScreenUpdating = False
   .DisplayAlerts = False
  End With
  For i = Worksheets.Count To 1 Step -1
   With Worksheets(i)
     .Range("B:B").Replace " ", ""
     If Application.Count(.Range("B:B")) = 0 Then
      .Delete
     Else
      Set FR = .Range("A:F").Find("*", , xlValues, , , xlPrevious)
      Set MyR = .Range("B1:B" & FR.Row)
      If Application.Count(MyR) < MyR.Count Then
        MyR.SpecialCells(4).EntireRow.Delete xlShiftUp
      End If
      Set FR = Nothing: Set MyR = Nothing
     End If
   End With
  Next i
  With Application
   .ScreenUpdating = True
   .DisplayAlerts = True
  End With
End Sub

で、どうかな ?

【35557】Re:行の削除について
お礼  ころころ  - 06/3/7(火) 18:13 -

引用なし
パスワード
   ありがとうございました。

皆さんのおかげで、やりたい事ができました。
もっと勉強して私も自力で出来るように努力したいと思います。

8010 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free