No.2
- 回答日時:
>そういうときに行や列を選択し、書式を変えたくないセルだけを選んで選択解除するということはできませんか?
最初から飛び飛びに選択することはできますが選択したセルの中から部分的に選択解除することはできないようです。
ありがとうございます。やはりできないのですか・・・(@_@;)
エクセルを勉強し始めて、その可能性の大きさに日々驚嘆しているのですが、意外にもそういう機能を装備していないとは逆に驚きです。
けっこうこういう選択をしたいケースって、多いと思うんですけどねー・・・
No.3ベストアンサー
- 回答日時:
こんにちは。
ご質問の例ですと、
一旦、"ある行や列の書式設定をまるごと変え"
その後に、"部分的に書式を変えたくないセル"を選択して書式を戻す、
という方法が、当たり前のようでいて、最短手数になる場合が多いです。
または、"部分的に書式を変えたいセル"を
Ctrlキーを押したまま複数同時に選択して"書式設定をまるごと変え"る
という方法が優る場合もあるでしょう。
無いものは無いなりに、色々と手だてを心得ておいて工夫することになると思います。
以下のURLを参考にしてみてください。
「エクセルでの選択範囲の追加について。」
http://oshiete.goo.ne.jp/qa/5746178.html
ショートカットキーの使い方とかは、知って置くだけで能率が上がるとは思います。
無いのなら作ってしまえ、というトライも幾つかある訳で、、、。
(因みにリンク先私の回答No.5中の一部リンク切れについて補足
【E03M121 切り取り又はコピーされたセル範囲を取得する 】
http://www2.aqua-r.tepm.jp/~kmado/kvba.htm
)
「選択範囲の部分解除」だけで良ければ、VBAで、比較的簡易に対応可能です。
以下、上記リンク先No.5を元に(コピーモード対策を省略し)より簡略化し、
xl2007以降でも、そのまま試せるように書き直したものです。
日頃私が使っているものと殆ど同じものです。
もし、試し方が解らないとか、試した上ですべてのExcelブックで機能させたいとか、
他にも、相談あれば補足欄にでも書いてみてください。
' XL2000、2003、2007、2010にて動作確認。
' 新規の標準モジュール に =この行から=~=この行まで=、全文(過不足なく!! ) コピペ
' Auto_Openを実行してショートカット(Ctrl + Shift + q)を設定。
' ブックを保存したらば、以降、Ctrl + Shift + q キーで機能を呼び出せます。
' ' 標準モジュール
' ' ===========この行から==========
Option Explicit
Option Private Module
DefStr S: DefLng N
Const S_SHORTCUT = "^+q"
' ' -------------------------------
Sub Auto_Open()
Application.OnKey S_SHORTCUT, "CullAreas"
End Sub
' ' -------------------------------
Sub Auto_Close()
Application.OnKey S_SHORTCUT
End Sub
' ' -------------------------------
' ' 選択範囲の部分解除 ... Ctrl + Shift + q で動作
Sub CullAreas()
Const S_TTL = "選択セル範囲の部分解除"
Dim vCull, r As Range, rPos As Range, rRet As Range
Dim sTmp, sRef ' As String
Dim nCCpM, nWR, nWC, nTop, nLeft, nBottom, nRight ' As Long
If Not TypeName(Selection) Like "Range" Then Exit Sub
With Selection
If .Count = 1 Then MsgBox "単一セルには使えません", 64, S_TTL: Exit Sub
sTmp = .Areas(.Areas.Count).Address
End With
With Application
Do
vCull = VBA.Array(.InputBox("選択解除するセル(最大4領域)を" _
& vbLf & "Ctrlキーを押したまま、または,(カンマ)区切りで選択して OK" _
, S_TTL, sTmp, , , , , 8))
If Not TypeName(vCull(0)) Like "Range" Then
MsgBox "キャンセルされました", 64, S_TTL
Exit Sub
ElseIf vCull(0).Areas.Count > 4 Then
MsgBox "解除指定できるのは 一度に 4つ 迄の領域", 48, S_TTL
Else
Exit Do
End If
Loop
nWR = .Rows.Count: nWC = .Columns.Count
For Each r In vCull(0).Areas
With r
nTop = .Row: nLeft = .Column
With .Cells(.Cells.Count)
nBottom = .Row: nRight = .Column
End With
End With
sTmp = Empty
If nTop > 1 Then sTmp = sTmp & ",R1:R" & nTop - 1
If nLeft > 1 Then sTmp = sTmp & ",R" & nTop & "C1:R" & nWR & "C" & nLeft - 1
If nBottom < nWR Then sTmp = sTmp & ",R" & nBottom + 1 & "C" & nLeft & ":R" & nWR & "C" & nRight
If nRight < nWC Then sTmp = sTmp & ",R" & nTop & "C" & nRight + 1 & ":R" & nWR & "C" & nWC
If sTmp <> "" Then
sTmp = Mid$(sTmp, 2)
sTmp = .ConvertFormula(sTmp, xlR1C1, xlA1, xlRelative)
sRef = sRef & " (" & sTmp & ")"
End If
Next r
If sRef <> "" Then Set rPos = Range(Trim$(sRef))
If Not rPos Is Nothing Then Set rRet = .Intersect(Selection, rPos)
End With ' ' <<< With Application ...
If Not rRet Is Nothing Then rRet.Select
Set rPos = Nothing: Set rRet = Nothing: vCull = Empty
End Sub
' ' -------------------------------
' ' ===========この行まで==========
ありがとうございます。
仰る通り今までは一度ざっくりと書式を変更してから、戻したい部分をしこしこと戻していたのですが、その部分部分で複雑な設定をしてあったりすると、完全に戻しきれなかったりしました。
また、飛ばしたいセルを除けてctrlを押しながら選択範囲をツギハギしていくのもいまひとつ効率が悪く、どちらも精度や効率面から、もう少し良い方法はないかといろいろ調べていました。
「無いものは無いなりに、色々と手だてを心得ておいて工夫する」というのは尤もなのですが、パワーポイントやワードなどの使い勝手からすると、なぜエクセルではマイナス選択ができないのか、どうしても疑問でした。
マクロを教えていただいてありがとうございます。
まだ実行はしていませんが、帰ってから試してみたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel アクティブセルのみ条件付き書式の色を他の色にしたい。 4 2022/06/11 22:19
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Excel(エクセル) VBA オリジナル関数で選択セルの合計を作成したい 3 2023/03/19 19:45
- Excel(エクセル) エクセルでシート保護のかかり方の違いとセルの非保護の設定 3 2022/08/09 10:02
- Visual Basic(VBA) Excel(VBA) 特定の条件に該当する行の値、書式を同じセルにコピ&ペーストしたいです 1 2022/05/21 18:18
- Excel(エクセル) エクセルの数式で教えてください。 1 2022/10/25 09:26
- Excel(エクセル) ユーザー定義について質問です。 2 2023/06/28 13:21
- Excel(エクセル) エクセルからビジオのリンク貼り付け 1 2023/03/30 17:51
- Excel(エクセル) Excelでの検索結果を含む行だけを表示させたい 5 2023/03/10 17:08
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel にて条件付き書式の色に...
-
E列のセルに数値が入れば(空白...
-
条件付書式で「=#N/A」に色を付...
-
エクセル 条件付き書式で色をつ...
-
条件付き書式で、結果が1行ずれる
-
Excelの条件付き書式にて空白セ...
-
条件付き書式で太罫線を引く方法
-
エクセルで特定の数字等を表示...
-
エクセルの枠の中の文字が青文...
-
セル結合させてるときの 条件...
-
エクセルで日付を入力したらカ...
-
【エクセル】今日の日付に赤枠...
-
Excelについて あるセルに文字...
-
セルの値が空白じゃないなら色...
-
エクセルで1以上は全て1にするには
-
Excel 条件付きの書式 マクロ
-
エクセルで一定期間が経過した...
-
エクセルで文字訂正の横線だけ...
-
Excelで2つのファイルを比較し...
-
エクエルで隣のセルの文字が赤...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
E列のセルに数値が入れば(空白...
-
Excel にて条件付き書式の色に...
-
条件付書式で「=#N/A」に色を付...
-
条件付き書式で、結果が1行ずれる
-
エクセルの枠の中の文字が青文...
-
エクセルで特定の数字等を表示...
-
Excelの条件付き書式にて空白セ...
-
エクセル 条件付き書式で色をつ...
-
条件付き書式で太罫線を引く方法
-
エクセル内で複数の文字(50個ぐ...
-
エクエルで隣のセルの文字が赤...
-
セル結合させてるときの 条件...
-
Excelについて あるセルに文字...
-
エクセルで一定期間が経過した...
-
条件付き書式を教えてください
-
Excelで2つのファイルを比較し...
-
エクセルで1以上は全て1にするには
-
エクセルでカーソルのある行を...
-
エクセルで日付を入力したらカ...
-
【エクセル】今日の日付に赤枠...
おすすめ情報