

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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【初月無料キャンペーン実施中】オンライン健康相談gooドクター
24時間365日いつでも医師に健康相談できる!詳しくはコチラ>>
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
VBAエクセルの非アクティブシートで処理を実行する方法
Visual Basic(VBA)
-
4
Activeでないシートへのペースト
Word(ワード)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
アクティブでないシートのセルを選択
その他(Microsoft Office)
-
9
Excel Selectは使わない? VBA
Excel(エクセル)
-
10
【Excel VBA】指定行以降をクリアするには?
Visual Basic(VBA)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
別のシートから値を取得するとき
Visual Basic(VBA)
-
13
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
14
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
15
マクロで、アクティブでないシート上で処理させるには?
Excel(エクセル)
-
16
UserForm1.Showでエラーになります。
工学
-
17
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
18
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
19
もしセルが#N/A"なら~をする・・・には?"
Excel(エクセル)
-
20
特定のシートのみ再計算させない方法は?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
シート全体を他のブックのシー...
-
5
ワークシートの行が途中から表...
-
6
エクセルでセルの書式設定がで...
-
7
Excelで保護のかかったシートの...
-
8
VBA アクティブでないシートの...
-
9
ロックしたセルのコピー&貼り付け
-
10
エクセルで多数のシートをまと...
-
11
Excelで大量の2000個のリストを...
-
12
【エクセル】数式のセル番地を...
-
13
excelで勝手にテキストボックス...
-
14
行の挿入ができなくなった
-
15
エクセルで数式は残したまま他...
-
16
シート保護したExcelへの画像貼...
-
17
wordからexcelへ一部のデータを...
-
18
コピー&ペーストすると、VLOOK...
-
19
Excelでハイパーリンク先の表示...
-
20
EXCELで入力したものが違...
おすすめ情報
公式facebook
公式twitter