[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『changeイベントを2つ記述したい時はどうすればいいですか?』(VBA初心者)
よろしくお願いします。 1つ1つ単体でしたら正常に動作するのですが、changeイベントのコードを2つをくっつけると動きません。 どういう風に記述すればいいでしょうか?よろしくお願いします。
>動きません。 ではわかりません。 が、一例として、Exit Subしてしまっている。 (alt)
記述方法がわからないかったので、下記のように、二つくっつけて書いてみましたが、『名前が適切ではありません』とでて動作しません。
どのように記述すればよろしいでしょか?
Private Sub Worksheet_Change(ByVal Target As Range)
実行文
end sub
__________
Private Sub Worksheet_Change(ByVal Target As Range) 実行文
end sub
________
よろしくお願いします。(vba初心者)
Private Sub Worksheet_Change(ByVal Target As Range) 実行文 実行文 end sub Worksheet_Changeは1つ。 (alt)
今、上記のように修正してみたのですが、エラーはでなくなったのですが、 何の動作もしなくなってしまいました。 単体では、しっかり動くことを確認しておるので、他に何かくっつける際に文法的なものがあるのでしょうか? 対処法がおわかりでしたら、教えて下さい。よろしくお願いします。(VBA初心者)
コードを提示してみてはいかがでしょう? こちらの方かな? [[20100517161710]] 『changeイベントで書式を復活』(VBA初心者) [[20100510114549]] 『選択されたら数式復活』(VBA初心者) (キリキ)(〃⌒o⌒)b
ありがとうございます。 はい。以前、こちらで教えていただいた、コードの2つをくっつけたいのですが、うまく動きません。 コードは下記に記載します。よろしくお願いします。(vba初心者)
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub If Application.Intersect(Target, Me.Range("A6:A36")) Is Nothing Then Exit Sub
Target.Offset(, 1).FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(R[2]C[5],R36C44:R42C46,2,FALSE))" Target.Offset(, 3).FormulaR1C1 = "=IF(RC[-3]="""","""",VLOOKUP(R[2]C[3],R36C44:R42C46,3,FALSE))"
If Intersect(Range("A41:B50"), Target) Is Nothing Then Exit Sub Range("C41:D50").NumberFormatLocal = "G/標準" End Sub
お二人のコードを変えるわけにはいかないので、ちょこっとだけ弄りましたb Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Target, Me.Range("A6:A36")) Is Nothing Then Target.Offset(, 1).FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(R[2]C[5],R36C44:R42C46,2,FALSE))" Target.Offset(, 3).FormulaR1C1 = "=IF(RC[-3]="""","""",VLOOKUP(R[2]C[3],R36C44:R42C46,3,FALSE))" End If If Intersect(Range("A41:B50"), Target) Is Nothing Then Exit Sub Range("C41:D50").NumberFormatLocal = "G/標準" End Sub 原因としては「Exit Sub」で、処理から脱出しちゃってますから、処理出来ていなかったって事ですね^^ 詳しくは「Exit Sub」のヘルプを見てくださいな〜♪ (キリキ)(〃⌒o⌒)b
助かりました。ありがとうございました。しっかり動作しました。Exit Subについて、調べてみたいと思います(vba初心者)
教えていただいた、コードを記述するシートは保護がかかっておるので、一時的に解除して上記のマクロを実行し、おわったら、再度保護をかけたいのですが、
どこにコードをどのように記述するか教えていただくことはできませんでしょうか? 保護の方法は、調べて下記でできると書いてあったのですが、どこに記述していいかわからず、いろいろ記述してみたのですが、思ったような 動作をしてもらえないので、ぜひ教えていただけませんでしょうか?よろしくお願いします。(VBA初心者)
ActiveSheet.Unprotect Password:="12345" ActiveSheet.Protect Password:="12345"
ごめんなさいね。。。 [[20100518110405]] 『changeイベントについて』(VBA初心者) σ(^o^;)も、こちらでのmomoさんと同じ意見なんですよね〜 あとは、こちらでも、みやほりんさんがおっしゃっていますが [[20100513233352]] 『VBAでのファイルを更新(閉じる)したい』(はせぴぃ) >私の経験では、便利にしてあげればあげるほど、素人のままでいてくれます。 これも、もっともだと思いますb 今後、また問題が出たときに、すぐに対応できるだけのスキルを身につけるか。 または、表の仕様そのものの変更を考えるか。 今の内に考えておかないと、大変なことになりそうです。。。 (キリキ)(〃⌒o⌒)b
ありがとうございました。 下記のようなコードにしたら、何とかうごきました。アドバイスありがとうございます(VBA初心者)
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Not Application.Intersect(Target, Me.Range("A6:A36")) Is Nothing Then Target.Offset(, 1).FormulaR1C1 = "=IF(RC[-1]="""","""",VLOOKUP(R[2]C[5],R36C44:R42C46,2,FALSE))" Target.Offset(, 3).FormulaR1C1 = "=IF(RC[-3]="""","""",VLOOKUP(R[2]C[3],R36C44:R42C46,3,FALSE))" End If ActiveSheet.Unprotect Password:="12345" If Intersect(Range("A41:B50"), Target) Is Nothing Then Exit Sub Range("C41:D50").NumberFormatLocal = "G/標準" ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True End Sub
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.