gooドクター有料プランが1ヶ月間無料!

複数の列が存在するExcelの表で
指定した行のみを残し、それ以外は削除を行うコードが知りたいです。

例えば、

A列 B列 C列 D列 E列 F列 ~~ AA列 AB列・・・

と続く表があったとして、B列とD列とAB列のみを残し、
それ以外の列の情報を削除するといったものです。
(不要な列を削除すると、左に寄せて、B列とD列とAB列がA列B列C列となる感じです。)

ご教示いただけますと幸いです。

gooドクター

A 回答 (2件)

こんなんで、どうでしょう。



Sub sample()
Range("B1,D1,AB1").EntireColumn.Hidden = True
Cells.SpecialCells(xlCellTypeVisible).Delete Shift:=xlToLeft
Cells.EntireColumn.Hidden = False
End Sub
    • good
    • 1

こんにちは!



色々やり方はあると思いますが、一例です。
1行目は必ずデータが入っているという前提です。

元データが変わってしまうので、
Sheetをコピー&ペーストしてマクロを実行してみてください。

Sub Sample1()
 Dim j As Long
 Dim myRng As Range
 Dim myStr As String

  myStr = "B1_D1_AB1"
   For j = 1 To Cells(1, Columns.Count).End(xlToLeft).Column
    If InStr(myStr, Cells(1, j).Address(False, False)) = 0 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
    myRng.EntireColumn.Delete
End Sub

こんな感じではどうでしょうか。m(_ _)m
    • good
    • 0

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

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

gooドクター

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

人気Q&Aランキング