- ベストアンサー
エクセルマクロでシートの切り替えがうまくいかない
- エクセルマクロを使用してシートの切り替えを行う際、特定の条件で切り替わらない問題が発生しています。問題の具体的な内容や原因について詳しく説明します。
- 問題のマクロコードを解析した結果、AcountとBcountのループ内でのシートの指定方法が適切ではないことが判明しました。このため、シートが正しく切り替わらず、予期しないシートが読み込まれてしまいます。
- 問題の解決策として、マクロコード内のシート指定方法を修正することが必要です。具体的な修正方法や注意点について説明します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>BcamのBsheetではなくAsheetをそのまま読み込んでしまいます。 Bcam『が』BsheetではなくAsheetをそのまま読み込んでしまいます。 のタイプミスですか? でないとちょっと意味が解かりません。 >Bcam = Worksheets(Bsheet).Cells(Bcount, retu + 1) もしそうならこの行をチェックしてください。 コード内、[F8]キー押下、[ステップ実行]で確認。 http://hp.vector.co.jp/authors/VA016119/step/step01.html この時、VisualBasicEditor(VBE)のウィンドウをPC画面の半分にして Excelシートが見えるようにウィンドウ整列して実行すると コード内容と実行結果を見比べながら確認できます。 変数に格納された内容は、その変数にマウスキャレットをあてると ポップアップしてくれます。 またはVBEで[Alt]→[v]→[s]の[ローカルウィンドウ]で確認できます。 そのコードが意図したものになっているかは貴方でないと判断できません。 あと、関係ない箇所ですが >Acam = Worksheets(Asheet).Cells(gyou + 3, retu + 1) >Rp = Worksheets(Asheet).Cells(gyou + 3, retu + 8) この2行はLoop内では何の働きもしてません。 次のLoop時、冒頭の >Acam = Worksheets(Asheet).Cells(Acount, retu + 1) >Rp = Worksheets(Asheet).Cells(Acount, retu + 8) ですぐ上書きされるからです。 他、参考サイト http://www.asahi-net.or.jp/~ef2o-inue/vba_k/sub04_030.html
お礼
大変参考になりました。ステップ実行という便利な機能を教えていただきありがとうございました。