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

office2000、WIN98SEです。

マクロの記録でマクロを作成しました。
これをコマンドボタンにコピペして実行するとエラーになります。マクロの実行から動かすとなんの問題もありません。なにがいけないんでしょう。教えてください。
ちなみにやりたいことは、複数のシートの同じセルを一気にクリアにしたいです。
記録したマクロは以下の通りです。宜しくお願いします。

Sheets(Array("用紙(1)", "用紙(2)", "用紙(3)", "用紙(4)")).Select
Sheets("用紙(1)").Activate
Range("B9").Select
ActiveWindow.SmallScroll Down:=36
Range("B9:C58").Select
Selection.ClearContents
Range("F9").Select
ActiveWindow.SmallScroll Down:=36
Range("F9:G58").Select
Selection.ClearContents
Range("I9").Select
ActiveWindow.SmallScroll Down:=36
Range("I9:I58").Select
Selection.ClearContents
Sheets("用紙(1)").Select
Range("B9").Select
End Sub

A 回答 (3件)

> マクロの実行から動かすとなんの問題もありません。


> なにがいけないんでしょう。
> Range("B9").Selectのところが黄色くなります。

コマンドボタンをどのシートに配置しましたか。
たぶん、用紙(1)~(4)以外のシートではありませんか。
もし、そうだとするとRange("B9")は、Select出来ません。
Sheets(Array・・・も使えないと思いますよ。

次のコードでテストしてみてください。
一度もSelectしていません。
たぶん、同様の結果になると思います。

Private Sub CommandButton1_Click()
Dim SHname As String
Dim N As Integer
For N = 1 To 4
  SHname = Choose(N, "用紙(1)", "用紙(2)", "用紙(3)", "用紙(4)")
  With Sheets(SHname)
    .Range("B9:C58").ClearContents
    .Range("F9:G58").ClearContents
    .Range("I9:I58").ClearContents
  End With
Next
End Sub
    • good
    • 0
この回答へのお礼

その通りでした。日付を入力する別シートにコマンドボタンを作ってました。
シートが違うとSelectできないんですね。知りませんでした。初心者のあさはかな考えはやっぱりダメですね。朝からずっと悩み続けてましたのでとても助かりました。いつもありがとうございます。

お礼日時:2003/04/30 16:27

こんにちは。

maruru01です。

後ろの方の、

Sheets("用紙(1)").Select

を、

Sheets("用紙(1)").Activate

にしてみたらどうですか。

この回答への補足

やってみましたけど、ダメでした。
エラーが出てデバッグをクリックすると3行目のRange("B9").Selectのところが黄色くなります。ここがおかしいって意味なのでしょうか?初歩的な質問で申し訳ないです。

補足日時:2003/04/30 14:14
    • good
    • 0

どんなエラーになりますか?


ちなみに、私のExcel2000で実行してもなんらエラーがでません。

この回答への補足

実行時エラー'1004'
RangeクラスのSelectメソッドが失敗しました。
となります。
宜しくお願いします。

補足日時:2003/04/30 12:45
    • good
    • 0

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