- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロ シートの選択)
マクロシートの選択方法について
このQ&Aのポイント
- マクロを実行したブックを指定する時はTHISWORKBOOKですが、マクロを実行したシートを指定する方法について教えてください。
- FINDを使ったマクロの実行時にエラーが発生してしまう理由について教えてください。
- FINDで検索するシート名を変数で指定する方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>マクロを実行したシートを指定する時にもTHISWORKBOOKみたいな記述方法があるのでしょうか? 単純に set ws1 = activesheet とすれば,マクロを実行した瞬間のアクティブブックのアクティブシートが,ws1に格納されます。 >Set ws1 = ThisWorkBook.ActiveSheet >これが悪いのかな?と思い質問しました。よろしくお願いします。 その1行がエラーになることは,基本ほとんど考えられません。具体的にどういうマクロが失敗してるのか,詳しく情報提供してみるともっと具体的な回答も寄せられると思います。 たとえばありがちな状況としては sub macro1() dim w as worksheet ’後ろに隠す workbooks("別ブック.xlsm").activate set w = thisworkbook.activesheet ’エラーは起きない msgbox w.parent.name & " - " & name, w.name ’エラーは起きない w.select ’selectできないエラーになる end sub 変数に所定の(とは限りません。あなたが格納したいのはこのシートではないのかもしれません)シートは格納され,取得も出来ます。単に裏に回ったブックのアクティブシートをセレクトすることが出来ないだけです。
お礼
自分なりに色々考えて、原因が分かりました。 FINDの記述の前に、FINDの中に組み込まれているシートの変数を使用し、シートが選択出来るか確認実施。狙いのシートが選択出来たので、変数が原因ではない事が分かりました。で、FINDの中身をよく確認すると、検索する方向が設定されてませんでした。検索方向を追加した所、 エラーも無く普通に最後まで実行されました。 全てはFINDの記述に問題点は無いという自分の思い込みと、前に使用した記述をほぼそのまま使用した為です。 お騒がせして申し訳ありませんでした。