Excel VBA質問箱 IV

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

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


9361 / 13644 ツリー ←次へ | 前へ→

【27779】藁をもつかむ思いで・・・ VBA15日目の初心者 05/8/19(金) 10:54 質問[未読]
【27784】Re:藁をもつかむ思いで・・・ ちくたく 05/8/19(金) 11:44 回答[未読]
【27786】Re:藁をもつかむ思いで・・・ m2m10 05/8/19(金) 12:55 質問[未読]
【27787】Re:藁をもつかむ思いで・・・ タイトル 05/8/19(金) 13:18 発言[未読]
【27788】Re:藁をもつかむ思いで・・・ だるま 05/8/19(金) 14:48 回答[未読]
【27808】Re:藁をもつかむ思いで・・・ VBA15日目の初心者 05/8/20(土) 5:07 お礼[未読]

【27779】藁をもつかむ思いで・・・
質問  VBA15日目の初心者  - 05/8/19(金) 10:54 -

引用なし
パスワード
   以下のようなことをACCESSを使用せずEXCELで行うことが急に必要となって
しまい、慌てて書籍やインターネットで色々調べましたが未だ自力で解決
できません。
もし、簡単に解決できる方で、教えてもいいという方がいらっしゃいまし
たら助けていただけないでしょうか。

1行目(タイトル行)に「特定の文字」を含む場合で、
2行目以降に「別の特定の文字」を含む場合に、
「別の特定の文字」を含む行を全て削除し、削除した行を別シートに移動する。

【27784】Re:藁をもつかむ思いで・・・
回答  ちくたく  - 05/8/19(金) 11:44 -

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

質問はもっと具体的に書いてくださいね、
答えようがありません。
ですので、下のコードはサンプルみたいなものです。
泥臭いやりかたで書いてます。

Sub test()

  Dim tStrA As String
  Dim tStrB As String
  Dim i As Integer
  Dim n As Integer
  
  tStrA = "特定の文字列"
  tStrB = "もういっこの特定の文字列"
  n = 1
  
  If Range("A1").Value = tStrA Then
    For i = 1 To 500
      If Range("A" & i).Value = tStrB Then
        ActiveSheet.Rows(i).Copy (Worksheets(2).Rows(n))
        n = n + 1
      End If
    Next i
  End If
  
End Sub


▼VBA15日目の初心者 さん:
>以下のようなことをACCESSを使用せずEXCELで行うことが急に必要となって
>しまい、慌てて書籍やインターネットで色々調べましたが未だ自力で解決
>できません。
>もし、簡単に解決できる方で、教えてもいいという方がいらっしゃいまし
>たら助けていただけないでしょうか。
>
>1行目(タイトル行)に「特定の文字」を含む場合で、
>2行目以降に「別の特定の文字」を含む場合に、
>「別の特定の文字」を含む行を全て削除し、削除した行を別シートに移動する。

【27786】Re:藁をもつかむ思いで・・・
質問  m2m10  - 05/8/19(金) 12:55 -

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

ACCESS のテーブルを使うんかなーー?

【27787】Re:藁をもつかむ思いで・・・
発言  タイトル  - 05/8/19(金) 13:18 -

引用なし
パスワード
   >1行目(タイトル行)に「特定の文字」を含む場合で、
>2行目以降に「別の特定の文字」を含む場合に、
>「別の特定の文字」を含む行を全て削除し、削除した行を別シートに移動する。

上の操作をマクロ記録して、「特定の文字」と「別の特定の文字」の部分を後から
修正すればよろしいかと......

【27788】Re:藁をもつかむ思いで・・・
回答  だるま WEB  - 05/8/19(金) 14:48 -

引用なし
パスワード
   こんな感じのことでしょうか。^d^

Sub test()
  myFilter 特定の文字, 別の特定の文字
End Sub

Sub myFilter(項目 As String, 値 As String)
  Dim rngDest As Range
  Dim rngTitle As Range
  Dim rngFind As Range
  
  With ActiveSheet.UsedRange
    .Worksheet.AutoFilterMode = False
    Set rngTitle = .Rows(1)
    Set rngFind = rngTitle.Find(項目, , xlValues, xlPart)
    If rngFind Is Nothing Then Exit Sub
    
    .AutoFilter rngFind.Column, "=*" & 値 & "*"
    
    Set rngDest = Worksheets.Add.Range("A1")
    rngTitle.Copy rngDest
    Set rngDest = rngDest.Offset(1)
    
    With .Offset(1).SpecialCells(xlCellTypeVisible)
      .Copy rngDest
      .Delete xlUp
    End With
    
    .Worksheet.AutoFilterMode = False
  End With
End Sub

【27808】Re:藁をもつかむ思いで・・・
お礼  VBA15日目の初心者  - 05/8/20(土) 5:07 -

引用なし
パスワード
   皆様ありがとうございます。
おかげさまで解決できました。
この掲示板はすごいですね。
こんなに早くリプライがあるとは思いませんでした。
VBAをやってみてEXCELの奥の深さに驚きました。
はまりそうです。

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