• 締切済み

EXCEL VBA イベントプロシージャを

一枚のシートにWorkseet Changeプロシージャを複数入れたいと思いますがこれは可能でしょうか? やってみると「名前が適当ではありません」というエラーがでてしまうのですが。 よろしくお願いします。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.2

>A列に値が入力されています。それを、B列に入力があったときにはいったん空白にし、その後C列に入力があった時には再度表示する、と言う事をやりたいと思っています。 基本的にはこんな感じです。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then 'B列が変更された時の処理 ElseIf Target.Column = 3 Then 'C列が変更された時の処理 End If End Sub ですが、 「いったん空白」「再度表示する」 の処理はどのようにお考えでしょうか? 単純に削除(空白)すると戻す事はできません。 どこかに値を保存するか、文字色の変更で誤魔化すようにしないと「再表示」はできません。

noname#220917
質問者

お礼

その後いろいろやってみて解決しました。 要はWorksheet_Changeを一枚のシートに二つ入れようとしたのが間違いで、一つの Private Sub Worksheet_Change End Sub の間にやりたい事を別々に二つ記述すれば良かったんですね。 参考になりました。 回答ありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

同一のプロシージャー名(イベント)は重複できません。 イベントを判断してどのような事をやりたいのか明記して下さい。 イベントが発生したセルの判断はIF文を使って分岐させます。

noname#220917
質問者

補足

回答ありがとうございます。 A列に値が入力されています。それを、B列に入力があったときにはいったん空白にし、その後C列に入力があった時には再度表示する、と言う事をやりたいと思っています。 B列へのイベントとC列へのイベントを別のプロシージャでやろうとしてエラーがでてしまいました。 名前を変えれば良いと言う事でしょうか?

関連するQ&A