5倍速!メールマガジン
外部アカウントで登録
受講生の声
新着の講座投稿
新着の講座コメント
新着のノート投稿
投稿一覧へ新着のノートコメント
表示できる投稿はありません。
サイト運営者紹介
小川 慶一講師/教材/システム開発者紹介
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
表示できる投稿はありません。
この学習サイトの教材制作、サポート、システム開発をすべてやっています。
84nomuraさんの投稿
(投稿ID: 5325) 添付ファイルのダウンロード権限がありません
初めまして、数度の挫折を経てマクロの勉強に戻ってきた者です。
<質問内容>
歳入、歳出シートそれぞれでFor nextを回す前に、
それぞれのシートを選択している理由があればご教示いただけますでしょうか
<詳細>
For gyo 41 to 2 step -1
のすぐ上の、
Workbook(filename).sheets("歳出").select
の部分はいるか?という質問です。
エクセルマクロの基本的な挙動として、何かシートの操作をする時にはそのシートを選択にして表示( Active)にしないといけない
という制約があるのでしょうか。
添付が自分で書いたコードですが、このselectがなくても動きました。
小川 慶一さんのコメント
(コメントID: 7568)
> 歳入、歳出シートそれぞれでFor nextを回す前に、
> それぞれのシートを選択している理由があればご教示いただけますでしょうか
結論から言うと、select文は不要です。
ですが、ここでは、以下のような理由から、処理対象のシートを処理前に選択しています。
[1] 処理の様子が見えたほうが実感が湧くので
[2] 受講生の方が workbook, worksheet の記載なしでいきなり range ... と書いても動作するように
[1] については問題ないかと。
[2] についても、きちんとコードを記述して動作確認できるまでのスキルを身につけられた方であればご理解いただけるかと思いますが、ここまでの学びが中途半端で delete を実行している行で、シートやファイルの指定を書き忘れてハマってしまう方もいそうです。
「どこまでの失敗はフォローするか」という話ではありますか、まだ基礎編しか受講されていない方向けの演習ということと、コードの行数、コード内各行での文字数の多さからくる負担を考慮して、この動画では、なるべくハマりが生じにくいようにということで、このとおりにしました。
select, activate についてはたいていの場合は省略 or 別の方法での記載が可能です。
そのあたりのお話は、発展編1第3章で詳しくしています。
ひきつづき、よろしくお願いいたします。
84nomuraさんのコメント
(コメントID: 7578)
投稿ID: 5325
です。
Selectの不要の件、理解しました。
引き続きよろしくお願いいたします。
小川 慶一さんのコメント
(コメントID: 7580)
よかったです。ひきつづき、よろしくお願いいたします。