- 締切済み
エクセルでの範囲指定の方法
エクセルでの範囲指定の方法についての質問です ある一部分の離れたセルのみ除いて範囲指定する方法で、 確か、何かいい方法があったと思うのですが、どうにも思い出せません。 例えば B3・E5・D1からD5 以外のセルのみ範囲指定するとして まず全セル選択ボタンで全部選択して その後、確かコントロールキーを押しながら不要なセルをクリックしていくとできたかとおもうのですが 実際やってみても、1つのセルしかできません。 わかる方教えてください。 説明が下手ですみません。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
他の回答出ないようなので、選択範囲を反転するマクロを作ってみました。 Ctrl+クリックで選択したくない所をクリックして選択。そしてマクロで反転。 お時間あれば試してみてください。 ----以下ソース---- '選択範囲の数が多いと重いので、上限を設定しています。 Const MaxCount = 100000 Sub 選択範囲反転() Dim r As Range Dim a As Range Dim x As Long Dim y As Long Dim mx As Long Dim my As Long Dim sh As Worksheet Dim sha As Worksheet Dim adr As String Dim res As Integer If TypeName(Selection) <> "Range" Then Exit Sub If Selection.Count > MaxCount Then res = MsgBox("選択範囲が多すぎます", vbOKOnly) Exit Sub End If Set r = Selection Set sha = ActiveSheet Application.ScreenUpdating = False If r.Areas.Count <= 1 Then mx = r.Columns(r.Columns.Count).Column my = r.Rows(r.Rows.Count).Row Else For Each a In r.Areas x = a.Columns(a.Columns.Count).Column y = a.Rows(a.Rows.Count).Row If x > mx Then mx = x If y > my Then my = y Next End If ActiveWorkbook.Sheets.Add Before:=Worksheets(1) Set sh = Worksheets(1) sh.Range(r.Address).Value = 1 sh.Cells.SpecialCells(xlCellTypeBlanks).Select adr = Selection.Address If my < 65536 Then adr = adr & "," & Range(Cells(my + 1, 1), Cells(65536, 256)).Address If mx < 256 Then adr = adr & "," & Range(Cells(1, mx + 1), Cells(65536, 256)).Address Application.DisplayAlerts = False sh.Delete Application.DisplayAlerts = True sha.Activate sha.Range(adr).Select Application.ScreenUpdating = True End Sub ----以上ソース---- プログラムを書いてみて分ったことは、Excelの仕様上、選択範囲を除外するのは意外と難しい。 指定したセルを選択範囲から除外するプログラムを書こうと思いましたが断念しました。
#2です。 >>1つのセルしかできません。 >の意味は、 >全セル選択ボタンですべてのセルを選択した状態で >選択したくない複数のセルだけ除くときのことです。 全セル選択 → Ctrl+クリックで除外 1セルだけ除外できる と、いう意味ですよね。 その状態で、セルの塗りつぶしをして見て下さい。 除外されてるように見えるセルも塗りつぶされます。 アクティブセルが白色で選択されていない様に見えるだけで、実は選択されたままです。 と、いう事を言いたかったのですが、説明が下手でしたね。 それとも、私が何か勘違いしてるのかな。 >ただ、私のステータスバーには「ADD」と表示されないのですが、 >なぜでしょうか? ステータスバーの右の方です。 CapsLockやNumLock、ScrollLockの表示が出る左側です。 ADD CAPS NUM SCRL この部分出てないですか?
お礼
ありがとうございます。 >>1つのセルしかできません。 の件 勘違いしてました。 内容理解しました。 確かに除外されているようで、されてないですね。 青で塗りつぶししたら、真っ青になってしまいました。 「ADD」と表示の件 言語バーでおもいっきり隠れてました。 確かに右側に表示されます。 いい方法教えていただき感謝です。 引き続き、また何かありましたらよろしくお願いします。
Eccel2000で確認しました。 Ctrl+クリックは選択範囲の追加だけで、削除は出来ないですね。 >1つのセルしかできません。 アクティブセルが選択されていないように見えますが、このセルも選択範囲に入っています。 回答にはなりませんが、Shift+F8 で選択範囲の追加モード(ステータスバーに「ADD」と表示されます)にして、選択範囲を追加していくと、少し楽かもしれませんね。
補足
ありがとうございます。 >1つのセルしかできません。 の意味は、 全セル選択ボタンですべてのセルを選択した状態で 選択したくない複数のセルだけ除くときのことです。 質問の仕方が下手でわかりにくくてすみません。 確か、何かいい方法があったように記憶しているのですが 私の記憶違いでしょうか? 久々にエクセル使っているので・・・。 Shift+F8 の方法、やってみました。 こんな方法があったとは知りませんでした。 結構便利ですね。ありがとうございます。 ただ、私のステータスバーには「ADD」と表示されないのですが、 なぜでしょうか? ちなみに、ステータスバーは表示されています。 Shift+F8 の状態でも(そうでなくても)バーの左下は「コマンド」と表示されたままです。 わかりましたら、お願いします。
Ctrlキーを押しながらセルをクリックするとクリックしたセルだけ範囲指定されます。
補足
ありがとうございます。 範囲指定したいところだけクリックし選択したいのではなく 逆に すべてのセルを選択した状態で 選択したくない複数のセルだけ除いていきたいのですが・・・。 また、何かありましたらよろしくお願いします。
お礼
回答ありがとうございます お礼がおそくなり失礼しました マクロ試してみました ほ~すごいですね 範囲選択のためには使わないかもしれませんが コードの勉強に使わせていただきま~す そもそもの範囲指定の方法については、どうやら私の勘違いのようです。 でも、大変参考になりました