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

ネットでいろいろと検索したのですが、たどり着けず
自分でも試してみたのですが、分からずここへきました。

VBAで特定の文字を含まない列の削除をしたいのですが
良いコードどなたかお分かりになりますでしょうか?
下記を試しましたがマクロが完了しませんでした・・

Public Sub 列削除_指定文字()
Dim i As Long
For i = Columns.Count To 1 Step -1
With Cells(1, i)
If Not .Value = "*月度" Then .EntireColumn.Delete
End With
Next
End Sub

A 回答 (2件)

ループし続ける事は有りませんが・・・・。



正しく無いと言われれば正しくありません。

月度と言う文字列を含むかどうかの判定は
If Not .Value = "*月度" Then .EntireColumn.Delete

If Not .Value Like "*月度*" Then .EntireColumn.Delete
    • good
    • 1

こんにちは!



一例です。
一気に削除する方法にしてみました。

Sub Sample1()
Dim j As Long, myRng As Range
For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
If Not Cells(1, j) Like "*月度" Then
If myRng Is Nothing Then
Set myRng = Cells(1, j)
Else
Set myRng = Union(myRng, Cells(1, j))
End If
End If
Next j
If Not myRng Is Nothing Then
myRng.EntireColumn.Delete
End If
End Sub

※ 別シートでマクロを試してみてください。m(_ _)m
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます!
サクっと動き便利になりました。感謝です。
これからVBAを勉強していきます!

お礼日時:2018/01/17 13:04

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A