マクロで行削除ボタンを作成し、アクティブセルの行を削除(消去)するように
しています。
コマンド自体が単一行での動作を想定しているため、ifでの分岐で複数行の場合はexitを用いて
動作を停止したいと考えています。
例
A1セルのみの選択→OK
A1からB1までの選択→OK
A1からA3までの範囲→停止
A1からC3までの範囲→停止
といったような考えです。
ネット上で調べますと、複数範囲という事例はありましたが、当方の動きとは異なる
内容です。
複数行を選択している場合の確認方法はありますでしょうか?
No.1ベストアンサー
- 回答日時:
こんばんは
行の個数を数えれば良いかと思います
If Selection.Rows.Count > 1 Then Exit Sub
とか
If Target.Rows.Count > 1 Then Exit Sub
とか・・
No.2
- 回答日時:
こんばんは
>アクティブセルの行を削除(消去)するようにしています。
アクティブセルが対象であれば、基本的に1セルだけなので、チェックの必要は無いと思いますが・・
>複数行を選択している場合の確認方法はありますでしょうか?
確実なのは、選択範囲のセルの行(=Row属性)が全部同じかを調べれば良いのでしょうけれど、若干面倒な気もしますので、
Intersect(Selection.Cells(1).EntireRow, Selection).Cells.Count = Selection.Cells.Count
なんてのでも判定できると思います。
※ Selection が Range であるという前提です。
※ Range であることを、事前にチェックしておく必要があると思います。
※ 上記はセルの個数で判定していますので、特殊な選択(同じセルを2度含む範囲で重複選択するなど)方法で選択している場合には正しく判定できませんけれど。
その他にも様々な複数セルの選択方法がありますが、セルの重複が無ければ正しく判断できます。
普通に素直に1つの範囲だけの選択を想定すれば良いだけなら、No1様の
Selection.Rows.Count > 1
が、一番簡単でしょう。
複雑な選択方法にも確実に対応するなら、
check = True
For Each c In Selection
If c.Row <> Selection.Cells(1).Row Then check = False: Exit For
Next c
MsgBox check
のような感じでチェックを行えば、判定できるでしょう。
回答ありがとうございました。
No.1様の回答が早かったので、そちらをベストアンサーにさせて
いただきました。
今回は複雑な条件はありませんでしたが、今後の参考と
させていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) マクロ セルの選択 5 2022/08/12 22:47
- Visual Basic(VBA) RemoveDuplicatesメソッドについて教えてください。 シート1にシート2から値をもってく 1 2023/02/28 22:43
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/06 17:46
- Visual Basic(VBA) VBAマクロ 決まっていない行を選択して別シートへ貼付け 4 2023/02/16 16:08
- Visual Basic(VBA) データのある範囲を選択するVBAについて 2 2022/09/03 00:20
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法? 4 2022/05/27 13:04
- Excel(エクセル) 余計なお世話的な「入力規則」?対策は? 2 2023/01/14 12:39
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelで、スクロールをすると限...
-
エクセルの画面で十字マークが...
-
エクセルで連続データから、数...
-
セルをクリックすると付箋のよ...
-
エクセル 数値を全て「1」にす...
-
エクセルでハイパーリンクのU...
-
EXCEL アルファベットと数字の...
-
Excel選択を繰り返すとセルの色...
-
エクセル 画面上の行数を調節...
-
エクセルVBAでセル範囲のデータ...
-
Shift押しながら、矢印ボタンで...
-
複数のセルの入力内容を一度に...
-
エクセルで任意のセルをクリッ...
-
Excelで表のデータを並び替えた...
-
Excelの複数セル選択は、なぜ一...
-
エクセルで0を除いて昇順に並...
-
Excelで急に動かなくなる
-
連続データの作成(E)が選択出来...
-
エクセルでウインドウ枠を固定...
-
エクセルで「1~15」の乱数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの画面で十字マークが...
-
excelで、スクロールをすると限...
-
エクセルで連続データから、数...
-
セルをクリックすると付箋のよ...
-
複数のセルの入力内容を一度に...
-
EXCEL アルファベットと数字の...
-
エクセルでハイパーリンクのU...
-
エクセル 数値を全て「1」にす...
-
Excelで表のデータを並び替えた...
-
エクセル 画面上の行数を調節...
-
Excel選択を繰り返すとセルの色...
-
エクセルでカーソルが四方に矢...
-
Shift押しながら、矢印ボタンで...
-
エクセルVBAでセル範囲のデータ...
-
エクセルで0を除いて昇順に並...
-
Excelで急に動かなくなる
-
エクセルの複数セルに同時に同...
-
フィルタを解除した後の表示位置
-
ピポットテーブルエラー解決方法
-
エクセルで「1~15」の乱数...
おすすめ情報