プロが教える店舗&オフィスのセキュリティ対策術

ExcelのVBAでアクティブシートの特定の文字列の入ったセルを全て選択し、文字をクリアしたいのですが、構文を教えて下さい。ちなみに、文字列というのは『jpg』です。
挿入した画像を一括削除する場合は、ActiveSheet.Shapes.SelectAll で全て選択できたのですが、文字列だとよくわかりませんでした。
Find("jpg")でやってみると最初の『jpg』だけが選択されてシート内の全てを選択できないので、全て選択・クリアできる方法を探しています。

A 回答 (4件)

こんばんは!


すでに色々方法は出ていますので、参考程度で・・・

Sub test()
Dim i, j As Long
For i = 1 To ActiveSheet.UsedRange.Rows.Count
For j = 1 To ActiveSheet.UsedRange.Columns.Count
Cells(i, j) = Replace(Cells(i, j), "jpg", "")
Next j
Next i
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます。
お礼がかなり遅れてしまい申し訳ないです。
試してみましたが、成功しました。
この方法はなんとなくマクロ初心者の私でも少し理解できそうな構文なので
これを使用させて頂くことにしました。
本当にありがとうございました。

お礼日時:2011/05/10 09:41

>ActiveSheet.Shapes.SelectAll


これに匹敵すするコードは、

On Error Resume Next
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, xlTextValues).ClearContents
On Error GoTo 0


Find メソッドを使うなら、こうなります。
Sub MacroTest1()
Dim c As Range
 Set c = ActiveSheet.Cells.Find(What:="*jpg", LookIn:=xlValues)
   If Not c Is Nothing Then
    Application.ScreenUpdating = False
    Do
    Set c = ActiveSheet.Cells.FindNext(c)
    If c Is Nothing Then Exit Sub
    c.ClearContents 'ここで処理
    Loop
    Application.ScreenUpdating = True
   End If
End Sub
    • good
    • 0
この回答へのお礼

かなりお礼が遅くなってしまいました。
いろいろな方法があるのですね。
教えて頂きありがとうございます。

お礼日時:2011/05/10 09:39

一例です。


Sub 一例()
Cells.Replace What:="*jpg", Replacement:="", LookAt:=xlPart
End Sub
    • good
    • 0
この回答へのお礼

お礼がかなり遅れてしまい申し訳ないです。
教えて頂き本当にありがとうございました。

お礼日時:2011/05/10 09:37

For Each c In 希望するセル範囲


string1 = c.Text
string2 = ".jpg"

n = InStr(1, string1, string2, vbTextCompare)
If n <> 0 Then
C.Value=""

End If
Next
    • good
    • 0
この回答へのお礼

かなり遅くなってしまいました。本当に申し訳ありません。
教えて頂きありがとうございました。

お礼日時:2011/05/10 09:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!