
マクロで行削除ボタンを作成し、アクティブセルの行を削除(消去)するように
しています。
コマンド自体が単一行での動作を想定しているため、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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
複数の選択範囲の行番号を個別に取得する方法
Visual Basic(VBA)
-
Changeイベントで複数セルへの貼り付けおよび値削除時に1個目のセルのみエラーになる
Visual Basic(VBA)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
5
VBA 選択された離れたセルの値の取得について
Excel(エクセル)
-
6
Changeイベントでの複数セルのクリアの処理について
Visual Basic(VBA)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
複数の条件に合う行番号を取得するには
その他(Microsoft Office)
-
9
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
-
10
連続する複数のセル値がすべて0であることを判定するマクロ
Visual Basic(VBA)
-
11
エクセル VBAで複数セル選択時エラーになる問題
Visual Basic(VBA)
-
12
cellsで特定の離れた範囲を選択する方法は?
Visual Basic(VBA)
-
13
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
14
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
15
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
16
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
17
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
18
VBAでEmpty値って何ですか?
Excel(エクセル)
-
19
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
20
エクセルvba (ByVal Target As Range)について
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelで、スクロールをすると限...
-
エクセルで連続データから、数...
-
エクセルで任意のセルをクリッ...
-
エクセルの画面で十字マークが...
-
Excel 小さくなったスクロール...
-
セルをクリックすると付箋のよ...
-
EXCEL アルファベットと数字の...
-
エクセル 画面上の行数を調節...
-
エクセルで、結合したセルを選...
-
エクセル 数値を全て「1」にす...
-
excelで1行ごとに一気に削除す...
-
エクセルでハイパーリンクのU...
-
複数のセルの入力内容を一度に...
-
フィルタを解除した後の表示位置
-
エクセルVBA 複数行にまたがっ...
-
エクセルでカーソルが四方に矢...
-
初旬/中旬/下旬の並べ替え
-
エクセル2016の特定の文字列を...
-
Excelで表のデータを並び替えた...
-
列選択で勝手に広範囲に範囲選...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで連続データから、数...
-
excelで、スクロールをすると限...
-
Excel 小さくなったスクロール...
-
複数のセルの入力内容を一度に...
-
セルをクリックすると付箋のよ...
-
エクセルの画面で十字マークが...
-
エクセル 画面上の行数を調節...
-
excelで1行ごとに一気に削除す...
-
EXCEL アルファベットと数字の...
-
エクセルでハイパーリンクのU...
-
エクセルで任意のセルをクリッ...
-
エクセル 数値を全て「1」にす...
-
エクセルで、結合したセルを選...
-
ピポットテーブルエラー解決方法
-
Excelで表のデータを並び替えた...
-
エクセルVBA 複数行にまたがっ...
-
エクセルで0を除いて昇順に並...
-
エクセルでカーソルが四方に矢...
-
Excel選択を繰り返すとセルの色...
-
列選択で勝手に広範囲に範囲選...
おすすめ情報