[[20061016091640]] 『マクロの自動記録で登録したはずなのに・・・』(さと) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『マクロの自動記録で登録したはずなのに・・・』(さと)

こんにちは。
今まで使っていたエクセルの集計表にマクロで先週分のデータを範囲指定コピーするという、とても単純なマクロを自動記録で作成しました。

ところが、走らせようとすると、「RangeクラスのSelectメソッドが失敗しました」というエラーがでてしまいます。

Private Sub CommandButton1_Click()

    Sheets("Summary").Select
    Range("H6:P14").Select  ←この部分がエラー
    Selection.Copy
    Sheets("Sheet1").Select
    Range("E5").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

何故ここでエラーが起きてしまったのでしょうか?
ご教授よろしくお願いいたします。


 セルの結合とか有りませんか?
 (因因)

 Sheets("Summary")以外のシートモジュールに登録していませんか?
 
    Sheets("Summary").Select
Sheets("Summary")を選択する
    Range("H6:P14").Select  ←この部分がエラー
しかし、この部分はシートオブジェクトの取得が省略されているので、
コマンドボタンの配置されたシートを取得しようとしますが、
アクティブでないシートのRangeオブジェクトはSelectできないのでエラーとなります。
Selectする必要があるなら、
    Sheets("Summary").Range("H6:P14").Select
とすべきですが、この場合はコピー、ペーストが目的のようなので、
Selectしないコードの書き方を練習してください。
 
    Sheets("Summary").Range("H6:P14").Copy
    Sheets("Sheet1").Range("E5").PasteSpecial _
        Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
 
(みやほりん)(-_∂)b

 因因さん、みやほりんさん、回答ありがとうございました。

 >Sheets("Summary")以外のシートモジュールに登録していませんか?
 そうでした!
 コマンドボタンを使おうと、シートで登録した自動記録をそのままコピーしたってことを思い出しました。
 教えていただいた手順で直したらなんとかうまく働いてくれるようになりました。

 その後もうひとつ問題が・・・。
 マクロは良しとなったのですが、関連付けしたコマンドボタンが「押しっぱなし」の状態になってしまいました。
 これはやっぱり何かがエラーになっているんでしょうか?

(さと)


 「関連付けしたコマンドボタン」とは「CommandButton1」のことでしょうか。
(みやほりん)(-_∂)b


 みやほりんさん>> 
 そのとおりです。
 ボタンクリックでマクロが走ってくれたらいいな、と付け加えたものです。
 (さと)

 遅くなりましたが、いろいろプロパティを変更したりしてみましたが、再現しません。
実行しているマクロが原因とは思えません。
ボタンを押したときに再計算などで時間がかかってマウスポインタが砂時計マークに
なっている間の現象、ということではないですよね、きっと。
希望の処理が出来ているのなら、描画が追いついていないだけかもしれませんが・・・
ちなみにOSと、Excelのバージョンは?
当方 WinXP & Excel2003で検証。
(みやほりん)(-_∂)b

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.