

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も見ています
-
VBAエクセルの非アクティブシートで処理を実行する方法
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
アクティブでないシートのセルを選択
その他(Microsoft Office)
-
-
4
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
5
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
-
8
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
9
エクセルで複数のシートのクリアをしたいです
Excel(エクセル)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
12
エクセルVBA 作業後に選択範囲を解除する方法
Excel(エクセル)
-
13
フォントの大きさ
Visual Basic(VBA)
-
14
WorkBooksをオープンさせずにシートにコピーしたい【EXCEL VBA】
Excel(エクセル)
-
15
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
16
Activeでないシートへのペースト
Word(ワード)
-
17
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
18
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
19
【マクロ】名前を保存する際に、同じファイルがあった場合に、メッセージを表示
Excel(エクセル)
-
20
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの下部のシートタブの...
-
エクセルでセルの書式設定がで...
-
ワークシートの行が途中から表...
-
エクセルで別シートの同じ位置...
-
【マクロ】【画像あり】4つの...
-
EXCELのマクロについて
-
ロックしたセルのコピー&貼り付け
-
スプレッドシートが真っ白にな...
-
シート保護したExcelへの画像貼...
-
シート保護してても並び替えを...
-
シート全体を他のブックのシー...
-
エクセルで数式は残したまま他...
-
Excelでハイパーリンク先の表示...
-
EXCELでコピーしたグラフのデー...
-
エクセルVBA シートの保護につ...
-
エクセルで打ち込んだ数字を自...
-
Excelの関数
-
エクセル2013 複数シートから抽...
-
【OpenOffice】 改ページプレビ...
-
フィルタされたものを切り取り...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルの下部のシートタブの...
-
【マクロ】【画像あり】4つの...
-
ワークシートの行が途中から表...
-
EXCELでコピーしたグラフのデー...
-
エクセルでセルの書式設定がで...
-
シート全体を他のブックのシー...
-
エクセルで数式は残したまま他...
-
Excelで保護のかかったシートの...
-
シート保護したExcelへの画像貼...
-
ロックしたセルのコピー&貼り付け
-
VBA アクティブでないシートの...
-
excelで勝手にテキストボックス...
-
スプレッドシートが真っ白にな...
-
【エクセル】表から条件に合っ...
-
Excelで大量の2000個のリストを...
-
シート保護してても並び替えを...
-
フィルタされたものを切り取り...
-
エクセルで多数のシートをまと...
-
エクセルで打ち込んだ数字を自...
おすすめ情報