Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2017 / 13645 ツリー ←次へ | 前へ→

【70490】Clearの使い方 初めまして 11/11/20(日) 15:09 質問[未読]
【70492】Re:Clearの使い方 kanabun 11/11/20(日) 16:38 発言[未読]
【70499】Re:Clearの使い方 初めまして 11/11/21(月) 15:02 お礼[未読]
【70493】Re:Clearの使い方 kanabun 11/11/20(日) 18:44 発言[未読]

【70490】Clearの使い方
質問  初めまして  - 11/11/20(日) 15:09 -

引用なし
パスワード
   動作環境:Excel2007

2枚目のシートで6行目のG列からAH列までをクリアするために

ThisWorkbook.Worksheets(2).Range(Cells(6, 7), Cells(6, 34)).Clear

というコードを書いたのですが、エラーで落ちてしまいます。。。
是非、皆様の力をかして下さい。

その前はIf文ですが、それが通ることは確認済みです。

【70492】Re:Clearの使い方
発言  kanabun  - 11/11/20(日) 16:38 -

引用なし
パスワード
   ▼初めまして さん:

>ThisWorkbook.Worksheets(2).Range(Cells(6, 7), Cells(6, 34)).Clear
>
>というコードを書いたのですが、エラーで落ちてしまいます。。。

このコードはどこに書いていますか?

ThisWorkbook.Worksheets(2).Range(Cells(6, 7), Cells(6, 34))
というのは、標準モジュールに書いてあると

ThisWorkbook.Worksheets(2).Range( _
   ActiveSheet.Cells(6, 7), ActiveSheet.Cells(6, 34))
の意味に解釈されます。

シートモジュールに書いているとすると
ThisWorkbook.Worksheets(2).Range(Me.Cells(6, 7), Me.Cells(6, 34))
の意味に解釈されます。

よって、ThisWorkbook.Worksheets(2) がアクティブになっていないと、
ThisWorkbook.Worksheets(2).Rangeの中で 別シートのCells を参照する
という不合理な処理をしようとして、Application定義のエラーになります。


Cellsのまえにもシートを明示して
With ThisWorkbook.Worksheets(2)
  .Range(.Cells(6, 7), .Cells(6, 34)).Clear
End With
とすれば、通ると思います。

【70493】Re:Clearの使い方
発言  kanabun  - 11/11/20(日) 18:44 -

引用なし
パスワード
   ThisWorkbook.Worksheets(2).Cells(6, 7).Resize(,34 - 7 + 1).Clear

でもいいですね。

【70499】Re:Clearの使い方
お礼  初めまして  - 11/11/21(月) 15:02 -

引用なし
パスワード
   解決しました!

理由まで説明していただいて、ありがとうございます。
大変参考になりました。

また質問するかもしれませんが、その時は是非よろしくお願いします!

2017 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free