

Worksheets(1).Cells(1,1).Select
のように直接選択することはは不可能で、一旦シートをアクティブにしてから選択する必要があります。同様に、アクティブでないシートのセルをクリアするには
Worksheets(1).Activate
Cells(1,1).ClearContents
のように一旦アクティブにしてからクリアする必要があります。今日初めて知りました。
一方でアクティブシートのセルを他シートへコピーする時は、Activate操作は不要です。
Activesheet.Cells(1,1).copy destination:=Worksheets(1).Cells(1,1)
識別方法はあるのでしょうか?実行してみてエラーが出たらActivate入れようかというのは、効率が悪いです。
No.1ベストアンサー
- 回答日時:
こんばんは。
>Worksheets(1).Cells(1,1).Select のように直接選択することはは不可能で、
いいえ。
Application.Goto Worksheets(1).Cells(1, 1)
というような方法を取ります。
後は、良く分かりません。問題ないはずです。
>アクティブでないシートのセルをクリアするには
Worksheets(1).Cells(1, 1).ClearContents
ブック間でも、この方法は可能です。
ただし、Range型とCells型の組み合わせの場合、
シートモジュールで使う時に、失敗することがあります。
With Worksheets(1)
.Range(.Cells(1,1), .Cells(20,5)).ClearContents
End With
のように、親オブジェクトをそれぞれ結びつけてあげないといけません。
それ以外には、特にエラーが出る要素を思いつきません。
何かエラーが出ましたか?実際に、エラーが出る例を教えて下さい。
ありがとうございます。
あれから色々試しましたが、なぜか再現しません。釈然としませんが、保留します。application.GoToは是非使ってみます。
No.2
- 回答日時:
こんばんは。
>あれから色々試しましたが、なぜか再現しません。
私など、VBAを初めてから、1年や2年ではありませんから、おっしゃるような問題は発生したことはないのですが、やはり、書き方のスタイルというものが大きく影響を受けるようです。技術的には、もう前のようにはとても行かないのですが。ミスのない書き方というものは、書き方のスタイルから生まれるものだと思います。
With Worksheets(1)
.Range(.Cells(1,1), .Cells(20,5)).ClearContents
End With
それが、こういう書き方なのですが、標準モジュールで、ActiveSheetとして書くなら、そのように書く必要はないわけです。ですが、なるべくスタイルにこだわりをもってコーディングしたほうがよい、ということだけは申しておきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBA ワークシート指定の1行目を選択をしたい 2 2022/08/20 18:10
- Visual Basic(VBA) エクセルvba シートを順次アクティブにするマクロ 3 2022/06/24 16:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
- Excel(エクセル) マクロで最終行から上に検索を逆にしたい 1 2022/05/17 18:27
- Excel(エクセル) Excelマクロ(VBA)CELL形式とA1形式の使い分け 6 2022/08/27 23:35
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) 最終行の指定について教えてください。 複数シートを1シートへまとめる下記マクロでは各シートの6行目を 1 2022/10/04 18:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) VBA*セルに値があればシート名に反映 2 2023/02/21 14:52
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAエクセルの非アクティブシートで処理を実行する方法
Visual Basic(VBA)
-
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
7
アクティブでないシートのセルを選択
その他(Microsoft Office)
-
8
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
9
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
10
Activeでないシートへのペースト
Word(ワード)
-
11
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
12
Excel VBAでのWorksheet_Changeが動作しない原因
Excel(エクセル)
-
13
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
14
エクセルVBA 作業後に選択範囲を解除する方法
Excel(エクセル)
-
15
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
16
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
17
Enterキーでマクロを起動さす。
その他(ソフトウェア)
-
18
フォントの大きさ
Visual Basic(VBA)
-
19
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
20
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでセルの書式設定がで...
-
EXCELでコピーしたグラフのデー...
-
エクセルのデータ反映方法
-
エクセルで数式は残したまま他...
-
ワークシートの行が途中から表...
-
エクセルのマクロでコピー後の...
-
エクセルで別シートの同じ位置...
-
エクセルマクロ コピー元と貼...
-
シート保護したExcelへの画像貼...
-
色付きセルの合計を自動更新したい
-
excelで勝手にテキストボックス...
-
チェックボックスに連動した他...
-
ピボットテーブルの統合
-
エクセルでの複数シートへの同...
-
エクセルで多数のシートをまと...
-
worksheetクラスのcopyメソッド...
-
EXCELで入力したものが違...
-
Excelでハイパーリンク先の表示...
-
エクセルの下部のシートタブの...
-
シート全体を他のブックのシー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
シート全体を他のブックのシー...
-
ワークシートの行が途中から表...
-
EXCELでコピーしたグラフのデー...
-
Excelで保護のかかったシートの...
-
エクセルで数式は残したまま他...
-
ロックしたセルのコピー&貼り付け
-
VBA アクティブでないシートの...
-
excelで勝手にテキストボックス...
-
Excelで大量の2000個のリストを...
-
シート保護してても並び替えを...
-
行の挿入ができなくなった
-
エクセルのマクロでコピー後の...
-
シート保護したExcelへの画像貼...
-
【エクセル】表から条件に合っ...
-
スプレッドシートが真っ白にな...
-
フィルタされたものを切り取り...
-
【エクセル】数式のセル番地を...
おすすめ情報