• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel  関数をまたいだTargetの使用)

Excel関数をまたいだTargetの使用について

このQ&Aのポイント
  • Excelのマクロで、Private Sub Worksheet_Change(ByVal Target As Range)の部分を実行すると、「オブジェクト変数またはwithブロック変数が設定されていません」というエラーが出る。Targetをプロシージャをまたいで使用する方法について質問。
  • 試した2つの方法の内訳と正常動作の結果について説明。
  • 他にもTargetをプロシージャをまたいで使用するための一般的な手法について教えてほしい。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

Priavateで宣言する必要はありません。 myfunctionを呼び出すときに引数付にすればよいです。 以下の様にすればよろしいかと思います。 Private Sub Worksheet_Change(ByVal Target As Range) Dim ・・・・・・・      ・      ・  If Target.Value = ・・・・・ Call myfunction(Target) End If End Sub Sub myfunction(Target As Range) If 条件 Then Target.Offset(0, 1).Value = "aaa" End If End Sub

jkallnight
質問者

お礼

ありがとうございました。このような方法があったのですね!初めて知りました。今後の役にも立ちそうです。