Excel VBA質問箱 IV

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

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


8477 / 13646 ツリー ←次へ | 前へ→

【32907】ブック内の不要データを削除するには MoritaK 05/12/26(月) 22:33 質問[未読]
【32908】ブック内の不要データを削除するには MoritaK 05/12/26(月) 22:40 質問[未読]
【32910】Re:ブック内の不要データを削除するには かみちゃん 05/12/26(月) 22:51 回答[未読]
【32912】ブック内の不要データを削除するには MoritaK 05/12/26(月) 23:18 質問[未読]
【32913】Re:ブック内の不要データを削除するには かみちゃん 05/12/26(月) 23:23 発言[未読]
【32914】Re:ブック内の不要データを削除するには ponpon 05/12/26(月) 23:52 発言[未読]
【32915】Re:ブック内の不要データを削除するには かみちゃん 05/12/26(月) 23:54 発言[未読]
【32916】Re:ブック内の不要データを削除するには ponpon 05/12/27(火) 0:10 発言[未読]
【32911】Re:ブック内の不要データを削除するには ponpon 05/12/26(月) 23:17 発言[未読]
【33061】Re:ブック内の不要データを削除するには MoritaK 06/1/1(日) 15:36 お礼[未読]

【32907】ブック内の不要データを削除するには
質問  MoritaK  - 05/12/26(月) 22:33 -

引用なし
パスワード
   こんばんは
 社会人一年生です。よろしくお願いします。
 大きなファイルを不要なデータを一つ一つで削除しています。毎日かなり大変です。
削除作業はVBAで自動処理できるのでしょうか?
ご指導ください。

大きなファイルのレイアウトは、

A      B     C      D   E   F       AH
都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
北海道   札幌    slgo-01   0.16 0.12  0.21      0.24
北海道   札幌    slhd-15   0.16 0.12  0.21      0.24



都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
神奈川   大和    slgo-01   0.16 0.12  0.21      0.24
神奈川   横浜    slhd-15   0.16 0.12  0.21      0.24



まず削除するのはA,B列、その後は一行目のタイトルを残して、
二行目から最後まで、タイトルが入っている行を削除します。

【32908】ブック内の不要データを削除するには
質問  MoritaK  - 05/12/26(月) 22:40 -

引用なし
パスワード
   こんばんは
 社会人一年生です。よろしくお願いします。
 大きなファイルを不要なデータを一つ一つで削除しています。毎日かなり大変です。
削除作業はVBAで自動処理できるのでしょうか?
ご指導ください。

大きなファイルのレイアウトは、

A      B     C      D   E   F         AH
都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
北海道   札幌    slgo-01   0.16 0.12  0.21      0.24
北海道   札幌    slhd-15   0.16 0.12  0.21      0.24



都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
神奈川   大和    slgo-01   0.16 0.12  0.21      0.24
神奈川   横浜    slhd-15   0.16 0.12  0.21      0.24



削除後
A       B   C   D       AF
サンプルNo  1201  1202  1203  ・・・・1231
slgo-01   0.16 0.12  0.21      0.24
slhd-15   0.16 0.12  0.21      0.24



slgo-01   0.16 0.12  0.21      0.24
slhd-15   0.16 0.12  0.21      0.24




まず削除するのはA,B列、その後は一行目のタイトルを残して、
二行目から最後まで、タイトルが入っている行を削除します。

【32910】Re:ブック内の不要データを削除するには
回答  かみちゃん  - 05/12/26(月) 22:51 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>まず削除するのはA,B列、その後は一行目のタイトルを残して、
>二行目から最後まで、タイトルが入っている行を削除します。

手作業でも十分できる操作かと思いますが、

1.オートフィルタでタイトル行を抽出する。
 タイトル行は、A列が「都道府県」となっている行とする。
2.抽出された行を1行目を除いて、すべて削除する。
 これで、2行目以降のタイトル行が削除される。
3.A列とB列を削除する。

以上の手順を「マクロの記録」で記録してみると、VBAのコードができます。
それを整理したものが以下のような感じです。

Sub Macro1()
 With Range("A1")
  .AutoFilter Field:=1, Criteria1:="都道府県"
  Rows("2:65536").Delete Shift:=xlUp
  .AutoFilter
 End With
 Columns("A:B").Delete Shift:=xlToLeft
 Range("A1").Select
End Sub

【32911】Re:ブック内の不要データを削除するには
発言  ponpon  - 05/12/26(月) 23:17 -

引用なし
パスワード
   こんばんは。

かみちゃんさんから回答がついていますが、
数式でやってみました。
シート名は、そちらにあわせてください。

Sub test()
  Dim myR As Range
  
  With Worksheets("Sheet1")
  Set myR = .Range("A2", .Range("A65536").End(xlUp))
    myR.Offset(, 26).Value = "=IF(A2=""都道府県"",1,"""")"
    On Error Resume Next
    With .Range("AA:AA")
       .SpecialCells(3, 1).EntireRow.Delete
       .ClearContents
    End With
    On Error GoTo 0
    .Columns("A:B").Delete Shift:=xlToLeft
    
  End With
End Sub

【32912】ブック内の不要データを削除するには
質問  MoritaK  - 05/12/26(月) 23:18 -

引用なし
パスワード
   かみちゃんさん
 ありがとうございます。いただいたコードでやってみました。
成功です。
担当者、作成日が入った場合は、どのように対応すればいいでしょうか?
たまに「空き行」がありますので、その空き行も削除するには、可能でしょうか?
よろしくお願いします。

A      B     C      D   E   F         AH
担当者   山田
作成日   20051231
都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
北海道   札幌    slgo-01   0.16 0.12  0.21      0.24
北海道   札幌    slhd-15   0.16 0.12  0.21      0.24



担当者   杉山
作成日   20051231
都道府県  検疫所  サンプルNo  1201  1202  1203  ・・・・1231
神奈川   大和    slgo-01   0.16 0.12  0.21      0.24
神奈川   横浜    slhd-15   0.16 0.12  0.21      0.24



削除後
A       B   C   D       AF
サンプルNo  1201  1202  1203  ・・・・1231
slgo-01   0.16 0.12  0.21      0.24
slhd-15   0.16 0.12  0.21      0.24



slgo-01   0.16 0.12  0.21      0.24
slhd-15   0.16 0.12  0.21      0.24




【32913】Re:ブック内の不要データを削除するには
発言  かみちゃん  - 05/12/26(月) 23:23 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>担当者、作成日が入った場合は、どのように対応すればいいでしょうか?
>たまに「空き行」がありますので、その空き行も削除するには、可能でしょうか?

そういう重要な情報は、最初から提示しましょうね。
オートフィルタで、担当者、作成日、空白それぞれ選択して削除します。
コードは、マクロの記録で記録して確認してください。
なお、ponponさんの提示したコードのほうがコードとしては、スマートかもしれません。

【32914】Re:ブック内の不要データを削除するには
発言  ponpon  - 05/12/26(月) 23:52 -

引用なし
パスワード
   こんばんは。

>担当者、作成日が入った場合は、どのように対応すればいいでしょうか?
>たまに「空き行」がありますので、その空き行も削除するには、可能でしょうか?

数式に追加すればよいです。

Sub test()
  Dim myR As Range
  
  Application.ScreenUpdating = False
  With Worksheets("Sheet1")
  Set myR = .Range("A2", .Range("A65536").End(xlUp))
    With myR.Offset(, 26)
       .Value = "=IF(A2=""都道府県"",1,IF(A2="""",1,IF(A2=""担当者"",1,IF(A2=""作成日"",1,""""))))"
       On Error Resume Next
       .SpecialCells(3, 1).EntireRow.Delete
       .ClearContents
       On Error GoTo 0
    End With
    .Columns("A:B").Delete Shift:=xlToLeft
  End With
  Application.ScreenUpdating = True
End Sub

【32915】Re:ブック内の不要データを削除するには
発言  かみちゃん  - 05/12/26(月) 23:54 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>       .Value = "=IF(A2=""都道府県"",1,IF(A2="""",1,IF(A2=""担当者"",1,IF(A2=""作成日"",1,""""))))"

数式でする場合ですと、以下のようにすると少し短くできますね。

       .Value = "=IF(OR(A2=""都道府県"",A2="""",A2=""担当者"",A2=""作成日""),1,"""")"

【32916】Re:ブック内の不要データを削除するには
発言  ponpon  - 05/12/27(火) 0:10 -

引用なし
パスワード
   こんばんは。

>.Value = "=IF(OR(A2=""都道府県"",A2="""",A2=""担当者"",A2=""作成日""),1,"""")"

なるほどですね。まだまだだな。
ありがとうございました。<(__)>

【33061】Re:ブック内の不要データを削除するには
お礼  MoritaK  - 06/1/1(日) 15:36 -

引用なし
パスワード
   ponponさん
かみちゃんさん
 問題解決しました。
 ありがとうございました。

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