Excel VBA質問箱 IV

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

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


59601 / 76738 ←次へ | 前へ→

【21822】Re:セル内の指定した文字の前のみを削除
発言  ichinose  - 05/1/31(月) 19:36 -

引用なし
パスワード
   ▼みっちー さん:
こんばんは。

>VBA初心者です。
>A列のセルの内の特定の文字の前のみを削除するような
>マクロを作成したいのですが良い方法があったら
>どなたかご教授お願いします。
>例「ABCC999EDHIIJ」の「ED」の前を全て削除する
>
>指定した文字を含む行ごと削除は下記の方法で
>うまく処理できたのですが、上記については
>わかりません。。よろしくお願いいたします。
「ED」(半角の大文字)という文字列が判断材料と言う事でよろしいですか?
'=============================================================
Sub test()
  Dim rng As Range
  Dim myadd As String
  Set rng = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
  myadd = rng.Address
  sushiki = "=if(iserror(FIND(""ED""," & myadd & "))," & _
        "if(" & myadd & "="""",""""," & myadd & ")," & _
        "MID(" & myadd & ",FIND(""ED""," & myadd & "),LEN(" & myadd & ")))"
  Debug.Print sushiki '数式を確認して下さい
  rng.Value = Evaluate(sushiki)
End Sub

上記のコードは、アクティブシートにA列に対して、
「ED」以前の文字列を削除します。
オーソドックスな方法は、どなたかの投稿があると思いますが、
4000行ぐらいなら、こんな方法もあると言う事で・・・。


>
>
>---------------------------------------------------------
>
>Sub test()
>
>'特定の文字列を含む行を削除
>Dim c As Variant, Object, Range
>
>  Workbooks.Open Filename:="book1.xls"
>  fndkey1 = "AAA"
>  fndkey2 = "BBB"
>  
>  
>  For Each c In Sheets(1).Range("a1:a4000")
>    '行削除
>    
>    If c.Value Like "*" & fndkey1 & "*" Then Rows(c.Row).Delete Shift:=xlUp
>    If c.Value Like "*" & fndkey2 & "*" Then Rows(c.Row).Delete Shift:=xlUp
>       
>  Next
>
>  ActiveWorkbook.Save
>
>End Sub
>
>---------------------------------------------------------
0 hits

【21819】セル内の指定した文字の前のみを削除 みっちー 05/1/31(月) 18:10 質問
【21822】Re:セル内の指定した文字の前のみを削除 ichinose 05/1/31(月) 19:36 発言
【21823】Re:セル内の指定した文字の前のみを削除 みっちー 05/2/1(火) 10:04 お礼
【21824】Re:セル内の指定した文字の前のみを削除 ichinose 05/2/1(火) 10:35 発言
【21846】Re:セル内の指定した文字の前のみを削除 みっちー 05/2/1(火) 21:37 お礼

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