Excel VBA質問箱 IV

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

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


56587 / 76736 ←次へ | 前へ→

【24899】Re:セルのロックについて
発言  ichinose  - 05/5/12(木) 22:43 -

引用なし
パスワード
   ▼つ〜じ〜 さん:
こんばんは。

>宜しく御願い致します。
>
>Office XP を使っております。
>
>Worksheet_Changeイベントを使って、
>シート内のあるセルに入力があったら、
>他のセルをロックするというマクロを組みました。
>
>ロックの仕方は以下のとおりです。
>
>    'ロックする
>    Cells(i, 8).Locked = flg
>
>変数flgはboolean型で、
>あるセルが空文字であればfalse、
>空文字でなければTrueになります。
>
>あるセルの文字を削除すればロックが解除されますし、
>何か入力すればロックされる仕掛けです。
>
>問題はここからなのですが、
>あるセルを入力規則のリストのドロップダウンリストから入力した場合、
>ロックされないのです。
>
>マクロをステップインで確認すると、
>flg = True となっているのに、
>Cells(i, 8).LockedはFalseのままとなって次へ進みます。
>
>理由がわからずとても困っております。
>皆さんのレスをお待ちしております。
>宜しく御願い致します。
Excel2002において新規ブックの標準モジュールに以下のコードを
実行しました。

'================================================
Sub test()
  Range("i1:i5").Value = Application.Transpose(Array("a", "b", "c", "d", "e"))
  With Range("a1").Validation
    .Delete
    .Add Type:=xlValidateList, _
      AlertStyle:=xlValidAlertStop, _
      Operator:=xlBetween, _
      Formula1:="=$I$1:$I$5"
    End With
End Sub

これでアクティブシートのセルA1に入力規則(リスト)が設定されます。
次にアクティブシートのシートモジュールに

'=========================================================
Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
    If .Address = "$A$1" Then
     If .Value = "" Then
       .Locked = False
     Else
       .Locked = True
       End If
     End If
    End With
End Sub

というイベントプロシジャーを記述しました。

これで検証した結果、
リストから選択した場合でもLockedプロパティはTrueに設定されます。

こういう不具合の場合、コードと再現手順を記述してください。

0 hits

【24896】セルのロックについて つ〜じ〜 05/5/12(木) 19:28 質問
【24899】Re:セルのロックについて ichinose 05/5/12(木) 22:43 発言
【24919】Re:セルのロックについて つ〜じ〜 05/5/13(金) 19:37 質問
【24933】Re:セルのロックについて ichinose 05/5/14(土) 12:06 発言
【24975】Re:セルのロックについて つ〜じ〜 05/5/16(月) 15:36 質問
【24990】Re:セルのロックについて ichinose 05/5/16(月) 20:43 発言
【25321】Re:セルのロックについて つ〜じ〜 05/5/28(土) 14:48 お礼

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