• ベストアンサー

【VBA】複数列を削除したい。おわかりになられる方・・・

列の削除 '単数列の場合  Columns("C").Delete    'C列のみを削除 '複数列の場合  Columns("C:H").Delete 'C列~H列を削除 でいけることはわかるんですが、 上の例で行くとC列のみを削除を数字で列数を指定して  Columns(3).Delete でもいけますよね。 でも下の用に  Columns(3:8).Delete のように数字で列数を指定して一度に消すことはできないのでしょうか? エラーになるのですが何か特別な演算子が入りますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • okormazd
  • ベストアンサー率50% (1224/2412)
回答No.1

A1形式とR1C1形式ではコードの書き方が少し違います。 この場合は、 Range(Columns(3), Columns(5)).Delete でしょう。 そういう仕様です。

sineminna
質問者

お礼

そうでした! 前にやったことあったんですがまさしくその方法でした。 すっかり忘れてました。ありがとうございました。

その他の回答 (2)

回答No.3

No.2の回答 勘違いでした。すみません。 あの方法では、3列目から5列消してしまいます。

sineminna
質問者

お礼

お礼が遅れました。 いえいえ、参考になりました。何かに応用させていただきます。 ありがとうございます。

回答No.2

こんな感じでも消せたと思います。   Columns(3).Resize(, 5).Delete

関連するQ&A

  • マクロで変数を使用して複数列を削除

    エクセル2013です Range("B:C").Delete ' 列「B ~ C」を削除 Range(Columns(2), Columns(3)).Delete ' 列「B ~ C」を削除 Range("D:D").Delete ' 列「D」を削除 ですが で変数を使って Range(Columns(17), f).Delete ですと動作しません。 ウォッチで見るとfには21がセットされています。 17列目から21列目までの5列が列削除される予定です。 どうもRangeとCellsで片方が変数の場合記述がわかりません。 よろしくお願いします。

  • VBAによる列削除について教えて下さい

    VBA初心者です。いろいろと調べて見ましたが、「C列からアクティブセルの前列までを削除」する方法が分かりません。下の記述は「C列からX列」としていますが、X→「アクティブセルの前列」と読み替えるにはどうすればよろしいでしょうか。よろしくご指導下さい。 Sub 列削除() Columns("C:X").Select Selection.Delete Shift:=xlToLeft End Sub

  • 複数列の重複と空白を削除するマクロ(VBA)

    マクロの初心者です。 添付写真のように、複数列の重複セルと空白セルの両方を削除し、各列のデータを10列目から並べたいのですが、この場合、どのようなマクロを書けばよいでしょうか。 データの個数: 列によりますが、最大1000行程度 列数: A~J(空白列はありません)

  • エクセルで複数の列から複数の文字列(数字)を選びたいです。

    エクセルで複数の列から複数の文字列(数字)を選びたいです。 A   B   C   D   E   F   G   H 1   12   1   4   5   8   6 2   36  7   2   5   6 3   55  3   4   88  1  3  8 5   87 上記のような表があったとき、C列からG列のいずれかに1、3、8のどれかが 含まれるとき、H列にB列の数字を入れたいのですが、どのようにすれば できるのでしょうか? この場合、A列の1,3,4段にそれぞれ12、55、88と入れたいということです。 よろしくおねがいいたします。

  • VBA 特定の文字列を含む行を削除する方法

    特定の文字列を含む行を削除する方法が知りたいです。 行を削除する方法はWebで見つけたのですが↓ ---------------------------------------------------- Sub 特定の文字列を含む行を削除() Dim c As Range Dim myRow As Long With Range("A:A") Set c = .Find("特定の文字列") Do While Not c Is Nothing Rows(c.Row).Delete shift:=xlUp Set c = .Find("特定の文字列") Loop End With End Sub ---------------------------------------------------- ↑行を指定している箇所のRowsを Columns  RowをColomn に変更して以下の様にしてみました、   Columns(Colomn,c).Delete shift:=xlUp だめでした、、、。 VBAの知識が乏しく、組み立て方について理解が無いため、どうすればよいかさっぱりわからず、、 こちらで質問させて頂きました。。。 何卒宜しくお願い致します。

  • 複数のシートにまたがる列の削除について

    こんばんは、複数のシートを選択して特定の列を削除するVBAについて質問させてください。Sheet1とSheet2のA~C列を削除したく、以下のVBAを入力しましたが、削除されるのはSheet1のA~C列のみでSheet2に同様の処理が行われません。 手作業でやると複数のシートを選択のうえ列の削除ができるので、VBAでできないということはないと思うのですが、どのように記述すればよいのでしょうか・・・?!どなたかご教授よろしくお願いいたします! Sheets(Array("Sheet1","Sheet2")).Select Range("A:C").Delete Shift:=xlToLeft

  • VBA 右端列の削除

    このたび初めて質問させていただきます。 周囲にVBAを扱うひとがいないため、初歩的(たぶん?)な質問をさせてください。 以下のようなマクロを記録したのですが、一部を編集したいと考えております。 Columns("F:H").Select Selection.Insert Shift:=xlToRight Columns("A:B").Select Selection.Cut Range("F1").Select ActiveSheet.Paste Columns("J:J").Select→J列固定ではなく右端の列と設定したい。 Selection.Cut Range("H1").Select ActiveSheet.Paste Columns("A:B").Select Selection.Delete Shift:=xlToLeft Columns("J:J").SelectをJ列固定ではなく右端の列を1列設定し切り取りがしたいのです。Range("A2").End(xlToRight).Select ActiveCell.Offset(-1,0).End(xlDown).Select と書き換えてみたのですが、うまく作動しませんでした。 どなたか教えていただけませんでしょうか?

  • vbaで指定文字を含まない列を削除するとき

    vbaで指定文字を含まない列を削除したいです。 指定文字を含む列を削除するプログラムはできましたが、これを指定文字を含まない列を削除に変更したいです。 途中まで作ったこのプログラムを生かして、どう変更すれば含まないにできますか? 教えて頂けると助かります。 Private Sub CommandButton1_Click() Sheets("シート1").Select Do While (True) Rows("5:5").Select Set myselect = Selection.Find(What:="あああ", LookAt:=xlPart) If myselect Is Nothing Then Exit Do Columns(myselect.Column).Select Selection.Delete Shift:=xlUp Loop End Sub

  • ExcelのVBAで複数行削除を行う場合

    Excel2007のVBAで複数行を削除する方法を教えて下さい。 Excel2003で使用していたマクロが使えなくなってしまいました・・・。 下記のようなExcelシートに対して複数行ずつ行を削除し、削除対象が無くなるまで 削除処理を行うか、指定した行まで削除処理を行うという事をしたいのですが うまく動きません。 例      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc1 2行目             ccc2 3行目             ccc3 4行目             ccc4 5行目 aaa2   bbb2  ccc1 6行目             ccc2 7行目             ccc3 8行目             ccc4 例に対しての結果      A列   B列   C列   D列   E列 1行目 aaa1   bbb1  ccc4 2行目 aaa2   bbb2  ccc4 例に対して、複数行(指定した行数ここでは3行)の削除を行いたいのですが、 単純に複数行(3行)ずつ削除していくのではなく。 1行目や5行目にあるように文字や情報が入力されているA列とB列の情報は 残しつつ、4行目のC列以降の列の情報はすべて活かしていくという事をしたいのです。 Excel2003の時に使用していたVBAは以下のものです。 Sub 行を削除するマクロ() Workbooks("xxxx.xlsx").Activate '処理を行いたいExcel ※1 n = n + 0 LastRow = 2138           '処理を終了させたい行 ※2 Sheets("Sheet1").Select '処理を行いたいシート ※3 Do Until (n > LastRow) Rows(n + 4).Delete Shift:=xlsiftUp '削除したい行指定 ※4 n = n + 3 Loop End Sub 皆様の良いアドバイスやお知恵をお貸しください。 よろしくお願いします。

  • 列に見た目で データがなければ列ごと削除する方

    excel2010 題名には列にデータがなければとしていますが、見た目でデータの表示がなければ列を削除する方法を教えていただきたく。 H4セルに =IF(ISNA(HLOOKUP($A4,work!$C$2:$AM$8,3,FALSE)),"",HLOOKUP($A4,work!$C$2:$AM$8,3,FALSE)) I4セルに =IF(ISNA(HLOOKUP($A4,work!$C$2:$AM$8,4,FALSE)),"",HLOOKUP($A4,work!$C$2:$AM$8,4,FALSE)) J4セルに =IF(ISNA(HLOOKUP($A4,work!$C$2:$AM$8,5,FALSE)),"",HLOOKUP($A4,work!$C$2:$AM$8,5,FALSE)) という式が入っています。 K列には、自由記述する列を設けています。 上記式を必要な行数だけプルダウンコピーするので、行数は可変します。 H列からJ列までは、セルの書式設定-ユーザ定義ー種類で#としています。 HLOOKUPの参照結果がない時に0を表示しない様にするためです。 列のデータはH列からJ列の順に参照結果が反映されます。 (Hの参照結果がなくてIの参照結果を表示ということはありません。) この様な環境で、見た目上、HLOOKUPの参照結果がなければ、 列を非表示、あるいは削除したいのですが、どの様な構成で実施すればよいでしょうか? セルのデータがなければ下記の構成で対応可能ですが、見た目上で空白セルになっているだけで、実際には式が入っており、参照結果がある列だけを残したいのです。 -------------------------------------------------------------------------- 一例です。(A:E列範囲としています) For i = 5 To 1 Step -1 If Application.CountA(Columns(i)) = 0 Then Columns(i).Delete Next ---------------------------------------------------------------------------

専門家に質問してみよう