Excel VBA質問箱 IV

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

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


5646 / 13645 ツリー ←次へ | 前へ→

【49611】セルの制御 みみ 07/6/13(水) 11:34 質問[未読]
【49612】Re:セルの制御 Jaka 07/6/13(水) 11:48 発言[未読]
【49614】Re:セルの制御 みみ 07/6/13(水) 14:20 お礼[未読]
【49616】Re:セルの制御 Jaka 07/6/13(水) 15:04 発言[未読]
【49647】Re:セルの制御 みみ 07/6/14(木) 17:27 お礼[未読]
【49669】Re:セルの制御 Jaka 07/6/15(金) 10:01 発言[未読]

【49611】セルの制御
質問  みみ  - 07/6/13(水) 11:34 -

引用なし
パスワード
   こんにちは。わからないのでわかる方回答お願いします。

あるセルの値を変えられたら元に戻すということはできるのでしょうか?
保護は都合上使えないので、よろしくお願いします。

【49612】Re:セルの制御
発言  Jaka  - 07/6/13(水) 11:48 -

引用なし
パスワード
   マクロを無効にして開かれたら無意味。
シートモジュール。

例)A1セルの場合。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "A1" Then
  With Application
   .EnableEvents = False
   .Undo
   .EnableEvents = True
  End With
End If
End Sub

マクロが解らなかったら、ここで勉強してください。
Http://www6.plala.or.jp/MilkHouse/

【49614】Re:セルの制御
お礼  みみ  - 07/6/13(水) 14:20 -

引用なし
パスワード
   ▼Jaka さん:
ありがとうございます!
できました!!!

サイトも教えていただきありがとうございます!!!!

【49616】Re:セルの制御
発言  Jaka  - 07/6/13(水) 15:04 -

引用なし
パスワード
   先に書いたコードを煮詰めていくと色々不具合とかあります。
入門レベル?の不具合に不満がでて、少しづつ進歩してください。

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
Set Rng = Application.Intersect(Range("a1"), Target)
If Not Rng Is Nothing Then
  Application.EnableEvents = False
  Application.Undo
  Application.EnableEvents = True
End If
Set Rng = Nothing
End Sub

【49647】Re:セルの制御
お礼  みみ  - 07/6/14(木) 17:27 -

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

返信遅くなり申し訳ないです。
新しいコードありがとうございます!

そのままコピペってなるとやはりだめなところとかも
ありますよね・・・

勉強させていただきます!!!

【49669】Re:セルの制御
発言  Jaka  - 07/6/15(金) 10:01 -

引用なし
パスワード
   >そのままコピペってなるとやはりだめなところとかも
>ありますよね・・・
う〜ん。
ていうか、最初のコードはろくな対策を施していないため
場合によっては、思っていたような結果にならないという意味です。

セル内容が変更されたセルがA1だったらという意味ですが、
If Target.Address(0, 0) = "A1" Then

複数セルを選択して入力、コピペされた場合などは、
Target.Addressの返り値が違うので(A1;C5とか)反応しないということです。

2回目のは、変更されたセル範囲にA1セルが含まれていたら、
という風になってます。

色々確認してみてください。

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