
エクセルで以下のようなVBAをつくりましたが
Columns("B:C").Select
でエラーがでます。
初歩的なことですが教えてください。
Sub Macro3()
'
' Macro3 Macro
Worksheets(1).Copy before:=Worksheets(1)
Worksheets(1).Activate
Columns("B:C").Select
Selection.Delete Shift:=xlToLeft
Columns("C:L").Select
Selection.Delete Shift:=xlToLeft
Columns("H:H").Select
Columns("L:AA").Select
Selection.Delete Shift:=xlToLeft
End Sub
No.4ベストアンサー
- 回答日時:
yon56です。
ひょっとして、
Worksheets(1).Copy before:=Worksheets(1)
Worksheets(1).Select
Columns("B:C").Select
を、Microsoft Excel Objects のsheetに書いたんじゃないでしょうね。
Moduleに書かないと、無効ですよ。
その理由は、勉強して下さい。
右から削除するのは、削除対象の列番号を変化させないためです。
ありがとうございます。
Selection.Delete Shift:=xltoright
にするということでしょうか?
試してみて、leftと結果が変わらないような気がするのですが。
No.5
- 回答日時:
ご説明の通りだとすると、マクロを実行すると、新しくコピーされたシートが作成されて、そのシートがアクティブになった状態でエラーが発生して処理が止まっていると思います。
1)その状態から、手作業でB:C列を選択することは可能でしょうか?
2)エラーの番号または表示はどのようなものでしょうか?
ご質問には関係ありませんが、削除作業の順序に関しては、ANo3様に賛成です。
No.3
- 回答日時:
Worksheets(1).ActivateのActivateが間違いです。
ActivateをSelectにしたらOKです。
WorkbooksはActivate、WorksheetsはSelectでアクティブにします。
ついでですが、
列を削除するのに、シートの左側から削除していますが、
この方法だと列B:Cを削除すると、旧D:E列が新B:C列となり、
次の削除列指示がややこしくなるので、シートの右側から削除するようお勧めします。
この回答への補足
Worksheets(1).Copy before:=Worksheets(1)
Worksheets(1).Select
Columns("B:C").Select
上記のように書き直したのですが、
やはりColumns("B:C").Selectで
エラーが出てしまいます。
なぜでしょうか?
No.2
- 回答日時:
本題とは関係ありませんが、追加です。
>Columns("B:C").Select
>Selection.Delete Shift:=xlToLeft
Selection.Delete Shift:=xlToLeft
の、Selectionは
Columns("B:C").Select
で、Selectした実態はColumns("B:C")です。
ということで、SelectとSelectionが相殺されて
Columns("B:C").Delete Shift:=xlToLeft
と、1行にすることができます。
No.1
- 回答日時:
Worksheets(1)が「シートの保護」をされているとかはないでしょうか。
↓で「シートの保護」が解除されます。
Worksheets(1).Unprotect
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
Excelのセルの色を変えた行(す...
-
エクセルで、チェックボックス...
-
文字の色も参照 VLOOKUP
-
Excelでの並べ替えを全シートま...
-
VBAで繰り返しコピーしながら下...
-
エクセルの保護で、列の表示や...
-
ExcelのVlookup関数の制限について
-
EXCELのVBAで複数のシートを追...
-
【条件付き書式】countifsで複...
-
excel 複数のシートの同じ場所...
-
ユーザーフォームのデータをそ...
-
Excel 2段組み
-
Excel の複数シートの列幅を同...
-
シートをまたぐ条件付き書式に...
-
エクセルで小の月(29日以下)の...
-
SUMPRODUCTにて別シートのデー...
-
オートフィルタ使用時にCOUNTIF...
-
エクセルで、book全体の検索&...
-
エクセルの列の限界は255列以上...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【マクロ】【配列】3つのシー...
-
文字の色も参照 VLOOKUP
-
【条件付き書式】countifsで複...
-
ExcelのVlookup関数の制限について
-
エクセルで、チェックボックス...
-
エクセルの保護で、列の表示や...
-
Excelのセルの色を変えた行(す...
-
EXCELのVBAで複数のシートを追...
-
シートをまたぐ条件付き書式に...
-
Excelでの並べ替えを全シートま...
-
Excel の複数シートの列幅を同...
-
VBAで繰り返しコピーしながら下...
-
【VBA】複数のシートの指定した...
-
SUMPRODUCTにて別シートのデー...
-
Excelに自動で行の増減をしたい...
-
エクセルの列の限界は255列以上...
-
Excel 2段組み
-
VLOOKアップ関数の結果の...
-
excel 複数のシートの同じ場所...
-
Excel VBA ピボットテーブルに...
おすすめ情報