エクセル2003 OSはXP を使っています。
以下のとおり、全く同じコードにも関わらず、前者は動き、後者は動きません。
なお、ClearContents を Clear に変えても Copy に変えても、同様の結果です。
しかし、Cells を使わずに、"A4:C10" 等、番地で直接書くと、後者も動きます。
後者のコードを Cells で動かす方法は無いでしょうか?
また、何故こんな現象がおこるのでしょうか?
なお、シート名などは、間違いありません。
どなたか教えてください。
Sheets("基本データ作成").Range(Cells(3, 3), Cells(qwe, 4)).ClearContents
Sheets("検討データ").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
No.1
- 回答日時:
Cellsプロパティはアクティブシートに対して指定が有効になるようです。
したがって、
Sheets("基本データ作成").Range(Cells(3, 3), Cells(qwe, 4)).ClearContents
Sheets("検討データ").Activate
Sheets("検討データ").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
としてから実行すると「動く」のでは?
なお、「qwe」の変数の値は「0」以外が取得されていますよね?
この回答への補足
すみません。
大事なことを忘れてました。
前者も後者も、ワークシート上に配置したコマンドボタンから実行するようにしています。
なお、qwe の値は、必ず「1」以上になります。
No.2
- 回答日時:
>前者も後者も、ワークシート上に配置したコマンドボタンから実行するようにしています。
>なお、qwe の値は、必ず「1」以上になります。
コマンドボタンが「Sheets("基本データ作成")」用、「Sheets("検討データ")」用にそれぞれのSheet上に別置きで配置されているなら、それぞれのボタン実行でVBAとして動作するはずですが(当方の環境 WinXP、Excel2002)。
Private Sub CommandButton1_Click() 'Sheets("基本データ作成")のボタン
Dim qwe As Integer
qwe = 10
Sheets("基本データ作成").Range(Cells(3, 3), Cells(qwe, 1)).ClearContents
End Sub
Private Sub CommandButton1_Click() 'Sheets("基本データ")のボタン
Dim qwe As Integer
qwe = 10
Sheets("基本データ").Range(Cells(3, 3), Cells(qwe, 1)).ClearContents
End Sub
この回答への補足
たびたび言葉足らずですみません。
前者は、同シート上、
後者は、別シート上に配置されています。
なお、実行時エラー1004
アプリケーション定義またはオブジェクト定義のエラーです。
と、エラー表示が出ています。
No.3
- 回答日時:
>前者は、同シート上、
>後者は、別シート上に配置されています。
>なお、実行時エラー1004
>アプリケーション定義またはオブジェクト定義のエラーです。
と、いうことなら
Private Sub CommandButton1_Click() 'Sheets("基本データ")以外のSheetに配置されたのボタン
Dim qwe As Integer
Sheets("基本データ").Activate '追加コード(オブジェクト定義)
qwe = 10
Sheets("基本データ").Range(Cells(3, 3), Cells(qwe, 1)).ClearContents
End Sub
つまり、オブジェクト「Sheets("基本データ")」の定義エラーということのようです。
この回答への補足
何度もありがとうございます。
ご教示いただいた
Sheets("基本データ").Activate '追加コード(オブジェクト定義)
ですが、
実行時エラー438
オブジェクトは、このプロパティまたはメソッドをサポートしていません。
と表示されまして、エラーになってしまいました。
名案は無いものでしょうか?
すみません。先ほどの補足は私の間違いです。
Activate を
Active と記述していました。
まことに申し訳ございませんでした。
おかげさまで、Activate '追加コード(オブジェクト定義)はクリアーできました。
どうもありがとうございました。
No.4ベストアンサー
- 回答日時:
コマンドボタンをSheet1に貼りつけた場合。
Private Sub CommandButton1_Click()
For qwe = 1 To 10
Sheets("Sheet1").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
Next qwe
End Subは動きました。C1:D10がクリアされました。
Private Sub CommandButton1_Click()
For qwe = 1 To 10
Sheets("Sheet1").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
Next qwe
End Sub
も動きました。A1:C10がクリアされました。
’----
Private Sub CommandButton1_Click()
For qwe = 1 To 10
Sheets("Sheet2").Range(Cells(4, 1), Cells(qwe, 3)).ClearContents
Next qwe
End Sub
はエラーになりました。
Private Sub CommandButton1_Click()
Dim sh2 As Worksheet
Set sh2 = Worksheets("sheet2")
For qwe = 1 To 10
Sheets("sheet2").Activate
Worksheets("sheet2").Range(sh2.Cells(4, 1), sh2.Cells(qwe, 3)).ClearContents
Next qwe
End Sub
で動きました。
明示しないと、Rangeの( )の中のCellsをSheet1のRangeと解釈するので、Sheet2のActiveteと矛盾する。
Private Sub CommandButton1_Click()
Dim sh2 As Worksheet
Set sh2 = Worksheets("sheet2")
For qwe = 1 To 10
Sheets("sheet2").Activate
Range(sh2.Cells(4, 1), sh2.Cells(qwe, 3)).ClearContents
Next qwe
End Sub
もだめでした。
ForNextにしたのは、qweの影響でないと思ったので
変化させました。
出来ました!
いつも適切的確なアドバイス、
定義とworkisheetsがポイントのようですね。
本当にありがとうございます!!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
- Visual Basic(VBA) 形式を選択して貼り付け 以下のコードで「元」シートと「先」シートのA列に同じ値があったら指定範囲をコ 5 2022/11/11 07:30
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) vba 等間隔の列に対しての計算 6 2022/05/17 20:15
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「未使用」と「不使用」ってど...
-
エクセルで年休を管理する方法...
-
アイドルの写真について
-
エクセルのグラフのデータ系列...
-
3Dプリンターを使う場合 パソコ...
-
Excelの“並び替え”で文字コード...
-
ネットカフェから、メールでき...
-
PCの内蔵メモリにデータは残る?
-
職務質問で聞かれたデータはど...
-
高速フーリエ変換でデータ数が...
-
XMLデータってなんですか?
-
Excel Webクエリ
-
e-tax 昨年作成したデータを再...
-
ファイザーやモデルナは当時は...
-
身長と年収
-
データ用HDDの別のPCへの乗せ替え
-
個人データと保有個人データの違い
-
異なるデータ数から求めた相関...
-
プログレッシブとインターレー...
-
データのレプリカってなんですか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「未使用」と「不使用」ってど...
-
PCの内蔵メモリにデータは残る?
-
日本通信の当月利用データ量は...
-
高速フーリエ変換でデータ数が...
-
3Dプリンターを使う場合 パソコ...
-
ネットカフェから、メールでき...
-
Excel Webクエリ
-
パレート図等で「N=100」とあ...
-
データeSIMのこと
-
XMLデータってなんですか?
-
Excelの“並び替え”で文字コード...
-
エクセルのグラフのデータ系列...
-
職務質問で聞かれたデータはど...
-
プロ野球の球団別の残塁数を載...
-
データ用HDDの別のPCへの乗せ替え
-
データのレプリカってなんですか?
-
2年ほど放置したあつ森を再開す...
-
差し込み印刷がうまくできません
-
エクセルで縦に並んだデータを...
-
ワードの差し込み印刷のデータ...
おすすめ情報