Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10全般 : Microsoft 365)
塗りつぶしのみ編集可に
投稿日時: 23/01/17 17:00:39
投稿者: せりむ

表題につきましてお力添えを賜りたく投稿いたします。
 
要件としてはシート内の黄色で塗りつぶされたセル以外を
すべてロック→シートの保護にて編集不可にしたいというものになります。
際して下記のコードまでは用意できるのですが、
(私の理解では)シート内に複数の結合セルがあるため実行してもエラーが出てしまいます。
 
どなたか良い解決策をご教授いただけますと幸いです。
よろしくお願い申し上げます。
 
sheetの造り
範囲A1〜Z100を使用して、他の方へ配信するアンケートを作成しておりまして、
回答入力欄のみ黄色の塗りつぶしを行い、他のセルは無色or黄色以外で塗りつぶしの状態となっています。
※結合セルは黄色の回答欄、その他のセル共にまばらに存在しております。
 
やりたいこと
上記範囲内の黄色セル・黄色結合セルのみ入力を許可したいが
フォームの変更などが頻繁に起こるため、VBAにて一括で黄色以外すべてのセルにロックを行いたい
 
 
現状のコード
Sub Test()
 
Range("A1:Z100").Locked = False
'一旦全てロック解除
  Dim c As Range
  For Each c In Range("A1:Z100")
    If c.Interior.Color = 65535 Then
      c.Locked = False
    Else
      c.Locked = True
    End If
  Next
'黄色のセルだった場合ロック
 
End Sub
 
以上、どうぞよろしくお願い申し上げます。

回答
投稿日時: 23/01/17 17:15:04
投稿者: simple

    If c.Interior.Color = 65535 Then
      c.Locked = False
    Else
      c.Locked = True
    End If
この部分の cをすべて
c.MergeAreaに変更すればよいのでは?

投稿日時: 23/01/17 17:27:52
投稿者: せりむ

>simple様
ありがとうございます、
.MergeAreaを通すと結合も認識できるのですね
こんな便利な方法があるとは勉強不足でした
 
解決いたしました、ありがとうございました!