電子書籍の厳選無料作品が豊富!

マクロ実行時に

実行エラー 1004 「Range クラスのselectメソッドが失敗しました。」 のメッセージが出てしまいます。

マクロは以下のとおりです。

-----------------------------------------------------------------------------------
Sub 振替表作成()
Workbooks.Add
Application.SheetsInNewWorkbook = 1
ActiveSheet.Name = "未収"
MsgBox ("未収・前受振替表エクセルファイルを作成します。" & "任意の場所を指定して保存してください。 ")

With Application.FileDialog(msoFileDialogSaveAs)
.InitialFileName = "未収・前受振替表"
If .Show = -1 Then .Execute
End With

MsgBox ("対象月次の1370集計表 を選択してください。")

With Application.FileDialog(msoFileDialogOpen)
.InitialFileName = ""
.AllowMultiSelect = True
If .Show = -1 Then .Execute
End With

Columns("A:D").Select
Selection.Delete Shift:=xlToLeft

----------------------------------------------------------------------------
Columns("A:D").Select の部分でエラーになります。

Columns("A:D").Select の前に ActiveWindow.Select を入れてみたんですが駄目です。
Columns("A:D").Select の前に Selection.Select を入れてみたんですが駄目です。
Columns("A:D").Select の前に Worksheets("シート名").Activate を入れてみたんですが駄目です。

原因と解消方法がわかりません。

何がいけないんでしょうか?

A 回答 (1件)

Worksheets("シート名").Activate


Columns("A:D").Select
このように書くと、1行目のシートがActiveになるのですが
2行目が指定しているのは元のシートのcolumnsになり、エラーになります。

シートをactiveにした上で
Worksheets("シート名").Activate
シートまで指定して
Worksheets("シート名").Columns("A:D").Select
と書けば望みの通りの動作になります。

この回答への補足

Worksheets("シート名").Activate
Worksheets("シート名").Columns("A:D").Select

やってみましたが、同じエラーが出ます。

不思議ことに、デバックをクリックしてコードを表示させると
Worksheets("シート名").Activate
Worksheets("シート名").Columns("A:D").Select

が消えていて、
Columns("A:D").Select

に戻った状態で、黄色マーカーになっています。

エクセルに戻って、マクロの編集からコードを開くと

Worksheets("シート名").Activate
Worksheets("シート名").Columns("A:D").Select

の記載がキチンと出ます。

このような現象は始めてで、原因がさっぱりわかりません。

補足日時:2011/06/09 09:18
    • good
    • 0

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