このトピックに書きこむ |
---|
Re[1]: プルダウン後に別セルの値を変更し、実行後エラー | |
---|---|
[194663] Re[1]: プルダウン後に別セルの値を変更し、実行後エラー- ■記事引用/メール受信=OFF■ □投稿者/ ヘンリー -(2022/01/21(13:26)) □U R L/ >同じ関数(Worksheet_Change)が呼ばれ とありますが、「Worksheet_Change」はイベントプロシージャですか、 それとも自作の関数ですか(自作の関数だとしても、どこかで別の不具合が生じる事もあると思いますが…)。 自作の関数の場合、戻り値はなんですか。 数学的「y=f(x)」な事は詳しく説明できませんが、 関数とは、VBA流でいうと、戻り値を持っている物です。 「y=f(x)」に当てはめると、「x」という値を「f」という計算をした結果「y」になる となりますので、「y」が戻り値になります。 「Worksheet_Change」がイベントプロシージャである という前提でお話しします。 「イベントプロシージャ」という事は、イベントが発生した時に実行されます。 この場合は、「Worksheetのどこかに変更が発生した」となります。 この時の「どこか」が引数として渡されるのです。 つまり、Worksheetのどこかのセル範囲の値を変更した時に、 変更されたセル範囲が引数として渡されるので、 「Targetの中身がない」という事はあり得ないと思います。 ランタイムエラーと仰いますが、出ているのはこの文言だけですか。 通常は、「実行時エラー」「エラー番号」「エラーの内容」が 表示されると思うのですが、その時の「エラー番号」「エラーの内容」 は何と表示されているのですか。 もしも、Worksheet_Changeをプルダウン選択時のみ実行したいのであれば、 Worksheet_ChangeないでTargetを判定すればよいと思いますよ。 |
[194659] プルダウン後に別セルの値を変更し、実行後エラー- ■親トピック/記事引用/メール受信=OFF■ □投稿者/ VBA超初心者 -(2022/01/20(23:11)) □U R L/ プルダウンで選択した内容によって別セルに記述してある内容を変更し(ここまで上手く動作してます)、自作の実行ボタンを押したところまた同じ関数(Worksheet_Change)が呼ばれランタイムエラーが表示されます。 引数で渡されるByVal Targetの中身がないためだと思われます。 このWorksheet_Change関数をプルダウン選択時のみ実行できる方法はありますか? もしくはやり方が間違っているのでしょうか? ++++++++++++++++++++ OS ⇒OTHER Version⇒Excel 2007 ++++++++++++++++++++ |