- ベストアンサー
エクセルWorksheet_SelectionChangeイベントでお訪ねします。
1.シート全部のセルが選択されてしまった(Cells.Selectの状態)ことを判別する方法はどうすればいいでしょう? まさか、If Selection.Cells.Count = 256*65536 Then ではないでしょうねえ? 2.複数のセルが選択されたことの判別方法は、 If Selection.Cells.Count > 1 Then で正しいですか、または他にいい方法がありますか?
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
1.if Selection.address="$1:$65536" then でもいいみたいです。 2.同じですが Selection.Count でいい(Cellsは不要)と思います。
その他の回答 (5)
- marbin
- ベストアンサー率27% (636/2290)
Debug.Printについては、↓が参考になりそうです。 「【マクロのコツ】」 http://www.eastwest-net.co.jp/vba/kotu.htm リンクの ---------- デバッグ (5)イミディエイト ウィンドウ ---------- をご覧ください。
お礼
ありがとうございます。 ちょいと難しいです。
- kumadayo
- ベストアンサー率31% (9/29)
If Selection.Rows.Count = Sheets(1).Rows.Count And Selection.Columns.Count = Sheets(1).Columns.Count Then Debug.Print "ok" End If はいかが?
お礼
なるほど、列と行で判別させたわけですね。 ありがとうございます。 ところでDebug.Printとは何でしょうか?
- marbin
- ベストアンサー率27% (636/2290)
#2のマクロはそのままでも動くのですが、 一応↓の記述をSub sentakuhanni2() の下に加えておいてください。 Dim r As Long
- marbin
- ベストアンサー率27% (636/2290)
2.については↓でいいかと思います Sub sentakuhanni2() r = Selection.Cells.Count If r = 1 Then MsgBox "一つ" Else MsgBox "複数" End If End Sub
お礼
ありがとうございます。
- marbin
- ベストアンサー率27% (636/2290)
1については↓でいいかと思います。 Sub sentakuhanni() Dim r As Long r = Selection.Cells.Count If r = 16777216 Then MsgBox "全部" Else MsgBox "全部ではない" End If End Sub 2.についてはお待ちを・・・。
お礼
早速ありがとうございました。 16777216=256*65536ですね。(笑)
お礼
ありがとうございます。 1.はずいぶんシンプルですね。おどろきました。 2.もCellsが不要とは思いませんでした。 勉強になりました。