
No.5ベストアンサー
- 回答日時:
以下は特定の範囲を除いてセルの背景色を塗るマクロです。
予め塗りつぶしたくないセル範囲に「塗りつぶし不可」という名前を定義してから使用して下さい。Sub Macro9()
Dim iRng, tCell As Range
If TypeName(Selection) = "Range" Then
For Each tCell In Selection
Set iRng = Application.Intersect(tCell, Range("塗りつぶし不可"))
If iRng Is Nothing Then
tCell.Interior.ColorIndex = 3
End If
Next
End If
End Sub
No.6
- 回答日時:
こんばんは。
#3 のWendy02です。
今、たまたま読み直してみましてマクロを作ってみました。ただ、#3に書いたことを撤回するわけではありませんので、内容はまだ生きています。
試してみれば分かりますが、以下のようにすると、まるで、トランプの『神経衰弱』か、地雷を埋め込んだようです。
'シートモジュール
'---------------------------------------------------
Private Sub CommandButton1_Click()
'塗りつぶし不可ボタン (KeepOut)
Dim strNameRange As String
Dim dummy As Variant
Dim buf As String
On Error Resume Next
dummy = Application.Names("KeepOut")
On Error GoTo 0
If dummy = Empty Then
Application.Names.Add "KeepOut", RefersTo:="=" & Selection.Address
Else
strNameRange = Application.Names("KeepOut").RefersTo
If Intersect(Range(strNameRange), Selection) Is Nothing Then
buf = Replace(Mid(strNameRange, 2), ActiveSheet.Name & "!", "")
Application.Names("KeepOut").RefersTo = "=" & Selection.Address & "," & buf
End If
End If
dummy = Empty
End Sub
'---------------------------------------------------
Private Sub CommandButton2_Click()
'塗りつぶしマクロ
Dim dummy As Variant
On Error Resume Next
dummy = Application.Names("KeepOut")
On Error GoTo 0
If dummy = Empty Then
Selection.Interior.ColorIndex = 34 '水色
ElseIf Intersect(Range("KeepOut"), Selection) Is Nothing Then
Selection.Interior.ColorIndex = 34
Else
MsgBox "塗りつぶし禁止区域を含んでいますので、取りやめです。", vbInformation
End If
dummy = Empty
End Sub
2度のご回答ありがとうございました。
VBAのあまり知識がないので、もっと勉強してから、いただいたモジュールを試してみます。
本当にありがとうございました。
No.4
- 回答日時:
つーか塗りつぶし不可か、可か、どちらか一方(簡単な方)のセル範囲に名前を付けておけば十分でしょ。
No.3
- 回答日時:
こんにちは。
Yes/No だったら、Yes で、「出来ます」というだけです。
何をもって、「塗りつぶし不可」にするか、ではないでしょうか?
特定の列とか、行とか、セルを予め登録しておくのか、何かの文字が入っているのか、既に色がついているのか、その条件があると思います。それ以上は、今のところ、分かりません。
ご回答ありがとうございました。以下のお礼のとおり、あまりVBAの知識がありません。何を持って、というところは
例えばスケジュール表などを作成していて、その表内のセルしか塗りつぶしのボタン(マクロ)が使えないようにするという事です。ですので、「セルをあらかじめ登録しておく」ということになるのかもしれません。もっと勉強します。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel ハイパーリンクのURLを別...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
太字に設定されているセルの個...
-
Excelで、図形内の文字をセルに...
-
エクセルマクロ 赤色の文字を検...
-
アポストロフィーの一括挿入 ...
-
Excel2007 色のカウント (VBA)
-
エクセルでPDFリンクを大量...
-
クリックすると文章が表示され...
-
エクセルでページ数をあるセル...
-
マクロを実行すると画像がズレ...
-
エクセルでの検索ボックスの作...
-
現在のセルの位置を返す関数は...
-
EXCEL プルダウンから指定セル...
-
エクセルで複数セルの文字を一...
-
エクセル 行列を入れ替えてオ...
-
ページ内ハイパーリンクの表示...
-
セルから取得したURLをwebクエ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excel内での検索結果をシート...
-
エクセル 数字をすべて○などの...
-
Excelで、図形内の文字をセルに...
-
Excel ハイパーリンクのURLを別...
-
Excel2007 色のカウント (VBA)
-
クリックすると文章が表示され...
-
マクロを実行すると画像がズレ...
-
太字に設定されているセルの個...
-
Excelでセルをクリックす...
-
エクセルでPDFリンクを大量...
-
アポストロフィーの一括挿入 ...
-
エクセル 未入力セルがあると...
-
エクセルでページ数をあるセル...
-
シート保護とグループ化機能を...
-
ページ内ハイパーリンクの表示...
-
フォントの色を指定して削除出...
-
空白セルを空セルに置き換える...
-
Excel:セルの値(文字列)を数...
-
現在のセルの位置を返す関数は...
おすすめ情報