Microsoft 製品に組み込まれている Visual Basic の実装。
最初にやった時にはうまくいっていたのですが、ある日突然マクロが正常に実行されなくなりました。
正常に実行とは、エラーが出るのですか?実行されている?実行されていない。(何の処理もしない)もう少し具体的に情報を頂きたいところですね。原因は、色々考えられ、詳しい情報を頂いても特定、改善が出来るか分かりませんが。
想定を限定して返信します。
ある日突然、それまで正常に記録されたマクロが実行されたと言う事なら、以下の作業を行っていませんか?
シート構成やセル配置(構成)などを変更していませんか?
自動記録のマクロは、実際に行われた作業(手順、実施内容)を記録してモジュールという場所に書き込まれます。
下記は、実際に自動処理というシートのセルA1に1セルA2に2を入力した記録です。
Sub Macro1()
Sheets("自動処理").Select '---シート名 自動処理の シートを選択
Range("A1").Select '---A列1行目を選択
ActiveCell.FormulaR1C1 = "1" '---選択されているセルに1を入力
Range("A2").Select '---A列2行目を選択
ActiveCell.FormulaR1C1 = "2" '---選択されているセルに2を入力
End Sub
見てわかると思いますが、"自動処理"や”A1”と記載されています。つまり、シート名を変更するとエラーなどが、
対象セルを配置変更すると思った動きになりません。(マクロから見れば、記録されている通りに実行されています)
”マクロ処理される対象シートで、よく見かけるやってはいけない後作業、表を見やすくする為、A列を挿入してしまう」これやるとアウト!”、また、シートのコピーを作り作られたコピーシートで実行されると思っている。。など
構成変更などの場合、対処として、新しい(変更された)表組みでマクロを改めて記録し直すのが最も早いと思います。
コード自体を修正する事もできますが、一定の知識と経験が必要だと思います。
--以下抜粋--
これは重要なことですが、マクロを記録するとき、マクロ レコーダーはほとんどすべての動作を記録します。順番を間違えた場合、たとえば、あるボタンを意図せずにクリックしてしまった場合、マクロ レコーダーはその動作を記録します。この解決策は、全体を記録し直すか、VBA コード自体を修正することです。そのため、マクロを記録するときは、自分が使い慣れているプロセスを記録することが最善となります。一連の動作を支障なく記録できれば、マクロを実行したとき、マクロが効率的に動作します。