質問です マクロ自動記録で並び替えをした直後は空白行を無視してきちんと並び替えするのですが、翌日実行したら空白行の一部が残っていました。フィルターにかけたらその空白行は空白と認識されずにフィルターにかかりませんでした。なぜでしょう?いつでも自動記録直後と同様に作動させる方法はありますか?ちなみに他のプロシージャーと共に一つのボタンで動くよう集約しています。並び替えの前のプロシージャーは IF やFOR NEXT OFFSET を使って条件以外を転記するものです。転記後空白行が出るので、並び替えのマクロを入れました。PCはWindows7です。
2020/08/05 15:49
小川 慶一さんのコメント
(コメントID: 6743)
さざなみさん:
windows OSではなく、エクセルの、あるいはサンプルデータ&マクロの問題と思われます。 エクセルきバージョンをお知らせください。(分からなければわからないでもOK)
さざなみさんの投稿
(投稿ID: 4813)
マクロ自動記録で並び替えをした直後は空白行を無視してきちんと並び替えするのですが、翌日実行したら空白行の一部が残っていました。フィルターにかけたらその空白行は空白と認識されずにフィルターにかかりませんでした。なぜでしょう?いつでも自動記録直後と同様に作動させる方法はありますか?ちなみに他のプロシージャーと共に一つのボタンで動くよう集約しています。並び替えの前のプロシージャーは IF やFOR NEXT OFFSET を使って条件以外を転記するものです。転記後空白行が出るので、並び替えのマクロを入れました。PCはWindows7です。
小川 慶一さんのコメント
(コメントID: 6743)
windows OSではなく、エクセルの、あるいはサンプルデータ&マクロの問題と思われます。
エクセルきバージョンをお知らせください。(分からなければわからないでもOK)
それから、問題を再現できるサンプルデータとマクロの入ったエクセルファイルをお送りください。
その際、再現手順をお知らせください。
サポートは以下のポリシーに従って行っていますので、個人情報等の含まれた企業内で使われているファイルをそのまま送られる等されても受付できませんので、予めその旨ご了承くだざい。
https://www.exvba.com/support.php
さざなみさんのコメント
(コメントID: 6745)
Excel2016を使っています。あと転記は、拡張子が、xlms から csv のファイルへの転記と、csv のファイル内のシート間の転記と2回あります。マクロはxlms で作りますが並べ替えはcsv のファイルの機能を使っています。会社のファイルなので送ることができません(^^;; お話した中で難しいようでしたら並び替えの部分は手動でやってもらうようにします。
> さざなみさん:
>
> windows OSではなく、エクセルの、あるいはサンプルデータ&マクロの問題と思われます。
> エクセルきバージョンをお知らせください。(分からなければわからないでもOK)
>
> それから、問題を再現できるサンプルデータとマクロの入ったエクセルファイルをお送りください。
> その際、再現手順をお知らせください。
>
> サポートは以下のポリシーに従って行っていますので、個人情報等の含まれた企業内で使われているファイルをそのまま送られる等されても受付できませんので、予めその旨ご了承くだざい。
> https://www.exvba.com/support.php
>
>
小川 慶一さんのコメント
(コメントID: 6746)
こんにちは。
> 会社のファイルなので送ることができません(^^;;
当然です。
全体を見てただ「分からない」と言っている間は上達しません。
どこがおかしいのか?絞り込むスキルが必要です。
ファイルの一部、マクロの一部を切り出して、その切り出した部分でテストをして、うまくいくかどうか確かめる。
うまくいくならそこには問題はないですので、別の範囲を切り出してテストをする。あるいは、より範囲を広げた切り出し部分でテストをしてどうなるか確かめる。
うまくいかなったならばそこに問題かあるはずなので、さらに切り出してテストをしてどうなるか確かめる。
最終的に「ここに問題があるのはわかるが、これ以上は自分では分割できない」と思えるレベルまで小さい部品のを作ったら、それのデータを問題ないものに書き直して送付します。
あるいは、それを参考に自分で手打ちでサンプルデータを作り、動作確認をして、「やっぱりこれでも問題が再現される」となったら、そのファイルを送付します。
というか、だいたい、プロセスを踏んでいるうちに、自分でうまくいかない理由を見出して解決できることもままあります。
自転車修理みたいなものです。
「自転車が動きません」→「タイヤだけ取り出して動作確認しましょう」→「チューブがおかしいですね」→...という感じです。
これをできるようになると、自分で問題解決できるようになりますし、上手な人に質問する手間も、質問のためにデータを書き換える手間も、回答を待つ時間のロスもなくなります。
実力に自信を持てるようにもなります。
ということで、がんばってください。
さざなみさんのコメント
(コメントID: 6757)
自動記録でなく自分で組み立てて試したらうまくいきました。
Workseets(2).Select
Dim hasi
hasi=range(“A1048576").End(xlUp)
Worksheets(“Sheet2”).Range((“A2 :”) & (“AS”) & hasi).Sort(Range(“AO2”))
OrderやHeaderをつけると「参照が間違っている」というようなメッセージが出てうまくいかないのでつけるのをやめました。
それからワークブック間ではなく、データをコピー貼り付けしてワークシート間で処理するように変更したらうまくいきました。ありがとうございました。
> さざなみさん:
>
> こんにちは。
>
> > 会社のファイルなので送ることができません(^^;;
>
> 当然です。
>
> 全体を見てただ「分からない」と言っている間は上達しません。
> どこがおかしいのか?絞り込むスキルが必要です。
>
> ファイルの一部、マクロの一部を切り出して、その切り出した部分でテストをして、うまくいくかどうか確かめる。
> うまくいくならそこには問題はないですので、別の範囲を切り出してテストをする。あるいは、より範囲を広げた切り出し部分でテストをしてどうなるか確かめる。
> うまくいかなったならばそこに問題かあるはずなので、さらに切り出してテストをしてどうなるか確かめる。
>
> 最終的に「ここに問題があるのはわかるが、これ以上は自分では分割できない」と思えるレベルまで小さい部品のを作ったら、それのデータを問題ないものに書き直して送付します。
> あるいは、それを参考に自分で手打ちでサンプルデータを作り、動作確認をして、「やっぱりこれでも問題が再現される」となったら、そのファイルを送付します。
>
> というか、だいたい、プロセスを踏んでいるうちに、自分でうまくいかない理由を見出して解決できることもままあります。
>
> 自転車修理みたいなものです。
> 「自転車が動きません」→「タイヤだけ取り出して動作確認しましょう」→「チューブがおかしいですね」→...という感じです。
>
> これをできるようになると、自分で問題解決できるようになりますし、上手な人に質問する手間も、質問のためにデータを書き換える手間も、回答を待つ時間のロスもなくなります。
> 実力に自信を持てるようにもなります。
>
> ということで、がんばってください。
さざなみさんのコメント
(コメントID: 6758)
自動記録でなく自分で組み立てて試したらうまくいきました。
Workseets(2).Select
Dim hasi
hasi=range(“A1048576").End(xlUp)
Worksheets(“Sheet2”).Range((“A2 :”) & (“AS”) & hasi).Sort(Range(“AO2”))
OrderやHeaderをつけると「参照が間違っている」というようなメッセージが出てうまくいかないのでつけるのをやめました。
それからワークブック間ではなく、データをコピー貼り付けしてワークシート間で処理するように変更したらうまくいきました。ありがとうございました。
> さざなみさん:
>
> こんにちは。
>
> > 会社のファイルなので送ることができません(^^;;
>
> 当然です。
>
> 全体を見てただ「分からない」と言っている間は上達しません。
> どこがおかしいのか?絞り込むスキルが必要です。
>
> ファイルの一部、マクロの一部を切り出して、その切り出した部分でテストをして、うまくいくかどうか確かめる。
> うまくいくならそこには問題はないですので、別の範囲を切り出してテストをする。あるいは、より範囲を広げた切り出し部分でテストをしてどうなるか確かめる。
> うまくいかなったならばそこに問題かあるはずなので、さらに切り出してテストをしてどうなるか確かめる。
>
> 最終的に「ここに問題があるのはわかるが、これ以上は自分では分割できない」と思えるレベルまで小さい部品のを作ったら、それのデータを問題ないものに書き直して送付します。
> あるいは、それを参考に自分で手打ちでサンプルデータを作り、動作確認をして、「やっぱりこれでも問題が再現される」となったら、そのファイルを送付します。
>
> というか、だいたい、プロセスを踏んでいるうちに、自分でうまくいかない理由を見出して解決できることもままあります。
>
> 自転車修理みたいなものです。
> 「自転車が動きません」→「タイヤだけ取り出して動作確認しましょう」→「チューブがおかしいですね」→...という感じです。
>
> これをできるようになると、自分で問題解決できるようになりますし、上手な人に質問する手間も、質問のためにデータを書き換える手間も、回答を待つ時間のロスもなくなります。
> 実力に自信を持てるようにもなります。
>
> ということで、がんばってください。
さざなみさんのコメント
(コメントID: 6759)
追加です。hasi=range(“A1048576") .End(xlUp)に.Rowをつけます。。
> 小川慶一さん:
> 自動記録でなく自分で組み立てて試したらうまくいきました。
> Workseets(2).Select
> Dim hasi
> hasi=range(“A1048576").End(xlUp)
> Worksheets(“Sheet2”).Range((“A2 :”) & (“AS”) & hasi).Sort(Range(“AO2”))
> OrderやHeaderをつけると「参照が間違っている」というようなメッセージが出てうまくいかないのでつけるのをやめました。
> それからワークブック間ではなく、データをコピー貼り付けしてワークシート間で処理するように変更したらうまくいきました。ありがとうございました。
> > さざなみさん:
> >
> > こんにちは。
> >
> > > 会社のファイルなので送ることができません(^^;;
> >
> > 当然です。
> >
> > 全体を見てただ「分からない」と言っている間は上達しません。
> > どこがおかしいのか?絞り込むスキルが必要です。
> >
> > ファイルの一部、マクロの一部を切り出して、その切り出した部分でテストをして、うまくいくかどうか確かめる。
> > うまくいくならそこには問題はないですので、別の範囲を切り出してテストをする。あるいは、より範囲を広げた切り出し部分でテストをしてどうなるか確かめる。
> > うまくいかなったならばそこに問題かあるはずなので、さらに切り出してテストをしてどうなるか確かめる。
> >
> > 最終的に「ここに問題があるのはわかるが、これ以上は自分では分割できない」と思えるレベルまで小さい部品のを作ったら、それのデータを問題ないものに書き直して送付します。
> > あるいは、それを参考に自分で手打ちでサンプルデータを作り、動作確認をして、「やっぱりこれでも問題が再現される」となったら、そのファイルを送付します。
> >
> > というか、だいたい、プロセスを踏んでいるうちに、自分でうまくいかない理由を見出して解決できることもままあります。
> >
> > 自転車修理みたいなものです。
> > 「自転車が動きません」→「タイヤだけ取り出して動作確認しましょう」→「チューブがおかしいですね」→...という感じです。
> >
> > これをできるようになると、自分で問題解決できるようになりますし、上手な人に質問する手間も、質問のためにデータを書き換える手間も、回答を待つ時間のロスもなくなります。
> > 実力に自信を持てるようにもなります。
> >
> > ということで、がんばってください。
小川 慶一さんのコメント
(コメントID: 6760)
こんにちは。
動作したんですね。
> 追加です。hasi=range(“A1048576") .End(xlUp)に.Rowをつけます。。
> > Workseets(2).Select
> > Dim hasi
> > hasi=range(“A1048576").End(xlUp)
> > Worksheets(“Sheet2”).Range((“A2 :”) & (“AS”) & hasi).Sort(Range(“AO2”))
> > OrderやHeaderをつけると「参照が間違っている」というようなメッセージが出てうまくいかないのでつけるのをやめました。
もしサポートを得たいということでしたら、手書きでなく、動作確認できたソースコードを [Ctrl] + [C] 等のショートカットキーなどでコピーしてきて貼りつけるようにしてください。
マクロは、書けば書くほど上達します (^^