• ベストアンサー

VBAで全てのワークシートに処理するとき

ブック内の全シートに、列を挿入しようとしたら、下の WS.Range("E1").Select の行で「Rangeクラスのselectメソッドが失敗しました」とエラーになります。 セルに入力する処理のときはこのパターンでできたのですが・・・いろいろ試してもわかりません T_T 何が必要でしょうか。 ----------------- Sub 列を挿入() Dim WS As Worksheet For Each WS In Worksheets WS.Range("E1").Select Selection.EntireColumn.Insert Next WS End Sub ----------------- よろしくお願い致します。

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

  • ベストアンサー
回答No.2

こんにちは。 Rangeオブジェクトに Select メソッドを使用するときは、 そのシートをアクティブにする必要があります。 ----------------------- WS.Activate WS.Range("E1").Select ----------------------- または、Select メソッドを使わずに↓のようにしてください。 ----------------------------------- WS.Range("E1").EntireColumn.Insert -----------------------------------

toyboys
質問者

お礼

ありがとうございます。 なるほどー もっとスマートな方法あるのですね。 勉強になりました。

その他の回答 (2)

回答No.3

シートを選択させたくなければ、こっち For Each WS In Worksheets   WS.Columns("E:E").Insert Next WS

toyboys
質問者

お礼

再びありがとうございます。 こんな単純な処理にもいろいろな方法があるとは・・・感動。

回答No.1

For Each WS In Worksheets   WS.Activate ←これ?   WS.Range("E6").Select   Selection.EntireColumn.Insert Next WS

toyboys
質問者

お礼

ありがとうございます。 基本を勉強せねば・・・

関連するQ&A