戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
プルダウン後に別セルの値を変更し、実行後エラー

    [194659] プルダウン後に別セルの値を変更し、実行後エラー-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ VBA超初心者 -(2022/01/20(23:11))
    □U R L/

      プルダウンで選択した内容によって別セルに記述してある内容を変更し(ここまで上手く動作してます)、自作の実行ボタンを押したところまた同じ関数(Worksheet_Change)が呼ばれランタイムエラーが表示されます。
      引数で渡されるByVal Targetの中身がないためだと思われます。
      このWorksheet_Change関数をプルダウン選択時のみ実行できる方法はありますか?
      もしくはやり方が間違っているのでしょうか?



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒Excel 2007
      ++++++++++++++++++++




    [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を判定すればよいと思いますよ。




このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G