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も見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
ExcelのVBAのマクロで他のシートの複数項目をクリアする方法
Visual Basic(VBA)
-
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
5
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
6
VBAエクセルの非アクティブシートで処理を実行する方法
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
Activeでないシートへのペースト
Word(ワード)
-
9
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
10
エクセルVBA ユーザーフォームのTextBoxを日付にしたい
Excel(エクセル)
-
11
エクセルでエラーが出て困っています。
Excel(エクセル)
-
12
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
13
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
14
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
15
別のシートから値を取得するとき
Visual Basic(VBA)
-
16
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
17
ExcelVBA実行後に時々落ちる
Visual Basic(VBA)
-
18
「選択範囲を解除してアクティブセルを選択」をマクロで行うにはどうすればよいでしょうか
Excel(エクセル)
-
19
worksheetFunctionクラスのVlookupプロパティを取得できません エラーへの対応
Visual Basic(VBA)
-
20
EXCELマクロで、開いてはいるがアクティブでないファイルをアクティブにする方法?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルでセルの書式設定がで...
-
Excelで大量の2000個のリストを...
-
シート全体を他のブックのシー...
-
ワークシートの行が途中から表...
-
エクセルの下部のシートタブの...
-
ロックしたセルのコピー&貼り付け
-
EXCELでコピーしたグラフのデー...
-
Excelで保護のかかったシートの...
-
VBA アクティブでないシートの...
-
excelで勝手にテキストボックス...
-
エクセルで打ち込んだ数字を自...
-
wordからexcelへ一部のデータを...
-
【エクセル】数式のセル番地を...
-
コピー&ペーストすると、VLOOK...
-
エクセルで数式は残したまま他...
-
シート保護したExcelへの画像貼...
-
EXCELのマクロについて
-
エクセルVBA シートの保護につ...
-
行の挿入ができなくなった
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで別シートの同じ位置...
-
エクセルでセルの書式設定がで...
-
EXCELでコピーしたグラフのデー...
-
エクセルの下部のシートタブの...
-
シート全体を他のブックのシー...
-
ワークシートの行が途中から表...
-
ロックしたセルのコピー&貼り付け
-
excelで勝手にテキストボックス...
-
Excelで保護のかかったシートの...
-
エクセルで数式は残したまま他...
-
VBA アクティブでないシートの...
-
Excelで大量の2000個のリストを...
-
エクセルで多数のシートをまと...
-
【エクセル】数式のセル番地を...
-
シート保護したExcelへの画像貼...
-
シート保護してても並び替えを...
-
【エクセル】表から条件に合っ...
-
エクセルで打ち込んだ数字を自...
-
EXCELで複数シート作成後、全シ...
-
エクセルで選択した行以外を削...
おすすめ情報