Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


6029 / 13646 ツリー ←次へ | 前へ→

【47591】指定した行が条件にあっている場合に関連したセルに対して保護をかけるよう... tamachan 07/3/15(木) 16:26 質問[未読]
【47592】Re:指定した行が条件にあっている場合に・... Jaka 07/3/15(木) 16:49 発言[未読]
【47596】Re:指定した行が条件にあっている場合に・... tamachan 07/3/15(木) 17:59 お礼[未読]

【47591】指定した行が条件にあっている場合に関連...
質問  tamachan  - 07/3/15(木) 16:26 -

引用なし
パスワード
   始めまして。
Excel VBAで悪戦苦闘をしております。
下記の内容について記述の方法を教えてください。


指定した行は固定、列は指定の範囲内。
指定した行のセルがTrueであるとき同列の指定範囲内のセルを保護かけたい。


列開始=3
列終了=15
Cells(27,列)がTrueであるときCells("21,列:25,列")を保護する。
これを列3から15まで自動的に処理するマクロを組みたいのですが、
教えてください。
自分の現在のスキルで組んだのは、以下のように該当するセルの範囲を
1列づつ組み込んでいます。

Sub CL01確認後のセルの保護()

   Application.ScreenUpdating = False
  Sheets("day").Select
  If Range("C27") = "Y" Then
    Range("C21:C25").Select
  Selection.Locked = True
  Selection.FormulaHidden = False
    
  End If
  If Range("D27") = "Y" Then
    Range("D21:D25").Select
  Selection.Locked = True
  Selection.FormulaHidden = False
  End If
  If Range("E27") = "Y" Then
    Range("E21:E25").Select
  Selection.Locked = True
  Selection.FormulaHidden = False
  End If
  If Range("F27") = "Y" Then
    Range("F21:F25").Select
  Selection.Locked = True
  Selection.FormulaHidden = False
  End If
End Sub

これを自動的に列を変化させて動作させるには
どのような構文にしたらよいでしょうか。

【47592】Re:指定した行が条件にあっている場合に...
発言  Jaka  - 07/3/15(木) 16:49 -

引用なし
パスワード
   With Sheets("day")
 For i = 3 To 15
  If .Cells(27, i).Value = "Y" Then
    With .Range(.Cells(21, i), .Cells(25, i))
      .Locked = True
      .FormulaHidden = False
    End With
  End If
 Next
End With

【47596】Re:指定した行が条件にあっている場合に...
お礼  tamachan  - 07/3/15(木) 17:59 -

引用なし
パスワード
   ▼Jaka さんへ:

tamachanです。

早速のサンプルマクロを作成いただきありがとうございました。
For Nextの使い方がよく理解できていなかったので
自分でトライしてもうまく動作せず質問しました。
早速組み込んで管理表を作っています。

また、不明な点が出ましたらご質問しますので
よろしくお願いします。

6029 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free