カンパ〜イ!←最初の1杯目、なに頼む?

【やりたい事】
ActiveCell.EntireRow.Clear のコードに
ブックやシートも指定したいです

以下マクロにて

ws.ActiveCell.EntireRow.Clear としたら
デバックとなりました


出来れば、変数を利用し、ブックとシートを指定した上での
アクティブセルを指定したいです

ご存じの方、宜しくお願いします

【コード】
Sub あいうえお()

Dim filePath As String
filePath = "C:\Users\2020\OneDrive\マクロ\vlookup.xlsm"


Dim wb As Workbook

Set wb = Workbooks.Open(filePath)

Set ws = wb.Worksheets("反映先")

ActiveCell.EntireRow.Clear

End Sub

A 回答 (2件)

こんにちは



ActiveCellが示すセルは状況依存です。
意図的に指定しているのならまだ理解できますが、開いただけのファイルのActiveCellを操作するというのは、実際にどこのセルを操作しているのかわからないことになるので、そのようなプログラムを作成する意図が不明と言わざるを得ません。

>ブックやシートも指定したいです
ActiveCellの意味を理解なさっていないように思われます。
ActiveCellは現在アクティブなセルを示すものですから、「一番トップにあるWindowのActiveSheet上の選択状態にあるセル」を意味します。
ですので、ブックやシートを指定することに意味はありません。
(暗黙的に決まっているので)
トップに無いブックやシートを指定すれば、(当然ですが)エラーになります。

>出来れば、変数を利用し、ブックとシートを指定した上での
>アクティブセルを指定したいです
どうしても「ActiveCell」に対しての操作を行いたいのなら・・
 ws.Activate
 ActiveCell.Clear
のように、対象となるセルを保持しているシートをアクティブにしてから実行すれば可能ですが、最初に記したように「意図不明のコード」と言わざるを得ません。
    • good
    • 3
この回答へのお礼

お返事ありがとうございます
ブックを約3つ開きマクロを
使い作業しています

ですので、自分でもわかりますいように、指定してえきたいという意味です

アクティブセルは、指定しなくても
常に1つということですね

お礼日時:2024/06/12 12:50

ちょっと質問。


>Set wb = Workbooks.Open(filePath)
で初めてファイルが開くわけですが、どのようにして「ActiveCell」を決定するのでしょうか?
それが決まっていないので「ws.ActiveCell.EntireRow.Clear」はエラーになるのでしょう。
何らかの目的Cellが初めから決まっているのでしたら、
ActiveCell.EntireRow.Clear
ではなく、
wb.ws.Range("a1").EntireRow.Clear
※ActiveCellがA1の場合の例
っとすればいいわけです。
シート名が反映先ということですので、何らかの別のシートを選択(=ActiveCell)して、Worksheets("反映先")の同じ行をクリアーしたいというのであれば、まだほかに作戦もありそうです。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A