[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『シート名連続変更について』(sige)
[[20160324150041]]
前回こちらでse_9様にお世話になりました。
ちょっと困っています。
以下で、"R4"の変化でシート名の年月日を変更しているのですが
どういうわけか"R4"以外のセルに値を入力してもイベントが発生し
シート名が、変わってしまいます。
対応策をおわかりの方よろしくお願いします。
Private Sub Worksheet_Change(ByVal Target As Range)
Dim ws As Worksheet Dim i As Long
For Each ws In Worksheets If ws.Name <> "祝日" Then ws.Name = Int(Rnd * 10000) Next
On Error GoTo ERR_HANDLER
Sheets(1).Name = Format(DateAdd("m", 1, Range("R4").Value), "ge年m月") For i = 2 To 12 If Target.Address(False, False) = "R4" Then If Format(DateAdd("m", i - 1, Range("R4").Value), "e") = Format(DateAdd("m", i, Range("R4").Value), "e") Then Sheets(i).Name = Format(DateAdd("m", i, Range("R4").Value), "m月") Else Sheets(i).Name = Format(DateAdd("m", i, Range("R4").Value), "ge年m月") End If End If Next
Exit Sub
ERR_HANDLER:
MsgBox "現在のA1セルの値はシート名にできません。"
End Sub
< 使用 Excel:Excel2013、使用 OS:Windows10 >
>>どういうわけか"R4"以外のセルに値を入力してもイベントが発生し >>シート名が、変わってしまいます。
どういうわけか ではなく 理由はあります。 前スレでも ねむねむさんから
>>A1セルはR4セルが変更された場合に同時に変更されるのだからTargetがR4セルかどうかをチェックすればいいのでは?
というアドバイスがありましたよね。
Changeイベントは、そのシート上のセルに変更が加えられれば『かならず』発生します。 ですから、R4 の変更時のみ処理したいということであれば、R4 の変更ではなかったら終了 というコードを プロシジャの先頭に記述します。
たとえば If Intersect(Target,Range("R4")) Is Nothing Then Exit Sub といったように。
(β) 2016/04/19(火) 06:13
どういうわけか、と言われても、 For Each ws In Worksheets If ws.Name <> "祝日" Then ws.Name = Int(Rnd * 10000) Next を冒頭に実行しているからですね。 対応策はすでにご指摘があったとおりです。
たとえば If Target.Address(False, False) <> "R4" Then Exit Sub でもいいですよ。
# ちなみに、ハンドルネームが連続していますが、 # 別に面白半分でひやかし投稿しているのではありません。 # 結構な数の投稿をさせていただいています。 # 一応断らないと、誤解される向きがあるので。
(γ) 2016/04/19(火) 06:32
>> # ちなみに、ハンドルネームが連続していますが、
そういえば、別の板ですが、αβγ さんというHNで質問があり、βが、ちょこっとコメントしたことがあります。 γさんのお目には留まらなかったようですけど、もしγさんもコメントしておられれば、おもしろかったかもですね。
いやいや、スレよごし、失礼しました。
(β) 2016/04/19(火) 06:48
> # ちなみに、ハンドルネームが連続していますが、
> # 別に面白半分でひやかし投稿しているのではありません。
> # 結構な数の投稿をさせていただいています。
> # 一応断らないと、誤解される向きがあるので。
回答者のみなさん何かありました?
(sige) 2016/04/19(火) 10:33
>>回答者のみなさん何かありました?
いえいえ。
β の書き込みの直後に 【γ】という、HNでレスをアップされて、なんだか β->γ と遊んでいるように思われるかなと そう心配されたんだと思います。
ちなみに γさんが【γ】というHNを使われはじめたタイミングは 私が 【β】を使いだすより少し前だったように記憶しています。
(β) 2016/04/19(火) 11:51
戯れ言に近い発言におつきあい頂き深謝申し上げます。
(γ) 2016/04/19(火) 22:24
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.