• ベストアンサー

エクセルWorksheet_SelectionChangeイベントでお訪ねします。

1.シート全部のセルが選択されてしまった(Cells.Selectの状態)ことを判別する方法はどうすればいいでしょう? まさか、If Selection.Cells.Count = 256*65536 Then ではないでしょうねえ? 2.複数のセルが選択されたことの判別方法は、 If Selection.Cells.Count > 1 Then で正しいですか、または他にいい方法がありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.6

1.if Selection.address="$1:$65536" then でもいいみたいです。 2.同じですが Selection.Count でいい(Cellsは不要)と思います。

AQUALINE
質問者

お礼

ありがとうございます。 1.はずいぶんシンプルですね。おどろきました。 2.もCellsが不要とは思いませんでした。 勉強になりました。

その他の回答 (5)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.5

Debug.Printについては、↓が参考になりそうです。 「【マクロのコツ】」 http://www.eastwest-net.co.jp/vba/kotu.htm リンクの ---------- デバッグ (5)イミディエイト ウィンドウ ---------- をご覧ください。

AQUALINE
質問者

お礼

ありがとうございます。 ちょいと難しいです。

  • kumadayo
  • ベストアンサー率31% (9/29)
回答No.4

If Selection.Rows.Count = Sheets(1).Rows.Count And Selection.Columns.Count = Sheets(1).Columns.Count Then Debug.Print "ok" End If はいかが?

AQUALINE
質問者

お礼

なるほど、列と行で判別させたわけですね。 ありがとうございます。 ところでDebug.Printとは何でしょうか?

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#2のマクロはそのままでも動くのですが、 一応↓の記述をSub sentakuhanni2() の下に加えておいてください。 Dim r As Long

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.2

2.については↓でいいかと思います Sub sentakuhanni2() r = Selection.Cells.Count If r = 1 Then MsgBox "一つ" Else MsgBox "複数" End If End Sub

AQUALINE
質問者

お礼

ありがとうございます。

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.1

1については↓でいいかと思います。 Sub sentakuhanni() Dim r As Long r = Selection.Cells.Count If r = 16777216 Then MsgBox "全部" Else MsgBox "全部ではない" End If End Sub 2.についてはお待ちを・・・。

AQUALINE
質問者

お礼

早速ありがとうございました。 16777216=256*65536ですね。(笑)

関連するQ&A