- ベストアンサー
Excel VBAでデータを置き換える際に発生する問題と解決方法
- Excel VBAを使用してデータをSheet1に貼り付け、体裁調整のマクロを実行する際に「既にデータがあります。置き換えますか?」のメッセージが表示され、選択によってマクロの動作が異なる問題が生じています。
- マクロの実行中に「OK」を選択するとデータが消える現象が起き、一方で「いいえ」を選択すると「RangeクラスのText To Columnsメソッドが失敗しました」というエラーメッセージが表示されて中断されます。
- さらに別のシートで、特定の日付のみ残し、それ以外のデータを削除するマクロについても「型が一致しません」というエラーが出ています。具体的には前月の日付のみ残す処理でエラーが発生しています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
まずデータ区切りについては、マクロは正常に作動していると思います。 「既にデータがあります。置き換えますか?」のメッセージはマクロ側ではなく、データ区切り機能のメッセージです。分割後のデータを表示させるセルに既にデータが入っている場合の注意換気ですね。 『右端2列のデータが消えてしまいます。』というあたりからすると、元データから想定より多くの分割数でデータが分割された結果、空白で上書きされているのでしょう。一度手動でデータ区切りを試してみて、どのように分割されているか確認してみるといいと思います。 場合によっては元データの修正などが必要になるでしょう。 次に「型が一致しません」というエラーですが、これはvba側の関数で、規定の型に対してしか実行できないのに違うデータ型に対して実行しようとした時に出るエラーです。 コードはザッとしか見ていないのですが、今月初めに作業をした時は正常に動作した、というところからすると問題はないでしょう。多分データ側に不備があると思います。日付として処理できないデータが入力されているんじゃないでしょうか。 元々空白だったり、文字列だったり、というデータです。その辺りを確認すると解決すると思います。 最後に、質問の内容からすると、業務でvbaは使用しているもののエエラーに対処する能力が低いようにお見受けします。 こうしたサイトでの解決には限界がありますし、そもそも的確な回答がつくとも限りませんので、エラー対応の方法を学習する事をおススメします。 https://www.excelspeedup.com/vbadebug/ https://www.tipsfound.com/vba/01010 要は「デバッグ」と言われる作業です。こうしたサイトで相談する場合にも、これがある程度行われていれば回答がつく可能性は上がります。 何より急ぎの業務だったりするケースを考えると、やはり自分で対応できるに越した事はありません。 お時間のあるときにでも勉強してみて下さい。
お礼
早々にご回答を有り難うございます。 無事、実行することが出来ました。 データを見直したところ、 やはり挿入した列以上のスペースが 入力した文字のところどころに入っていました。 そちらを削除したところ、正常に動作するようになりました。 末尾にもスペースが入っていました。 日付の問題ですが、念のため入力をし直したところ こちらも無事解消致しました。 日付として処理できないものは入力されておらず、 空白セルもなく 解消できた理由がよくわかっておりませんが・・・。 VBA初心者でご指摘の通り、能力以上のことをしている自覚があります。 勉強を続けていきたいと思います。 本当に有り難うございました。