- ベストアンサー
複数列の重複と空白を削除するマクロ(VBA)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、J1セルに「abc」と記入してから、もう一回マクロを動かしてみます。 >エラーが出てしまいます。 マクロのどの行でどんなエラーが出たのか、その時点でシートはどういう状況になっているのか、具体的な状況が何もありません。もうちょっと丁寧に情報提供してください。なので勝手に推測するしかありませんが、あなたがご相談にご自分で書いたのと、勝手に「違うこと」をやっていると考えられます。 #どこでエラーが起きたのか知る方法: エラーのダイアログでデバッグをクリックする #シートの状況を調べる方法: マクロの実行前とエラーで止まった時点のシートを見比べて、どこがどう変化したか確認する あるいは現在の状況を説明するのがメンドクサイなら、別にかまわないので次のマクロで動かします。 sub macro1() dim i as long on error resume next for i = 1 to 10 with columns(i) .specialcells(xlcelltypeblanks).delete shift:=xlshiftup .removeduplicates columns:=1, header:=xlno end with next i range("1:9").insert shift:=xlshiftdown end sub
その他の回答 (1)
- keithin
- ベストアンサー率66% (5278/7941)
sub macro1() dim i as long ’1列から10列まで for i = 1 to 10 with columns(i) ’空白セルと重複セルを除去する .specialcells(xlcelltypeblanks).delete shift:=xlshiftup .removeduplicates columns:=1, header:=xlno end with next i ’1~9行まで空ける range("1:9").insert shift:=xlshiftdown end sub ぐらいで。
お礼
申し訳ありません。追記します。 400エラーが出ますが、Sheet1の1行目から、各列とも空白と重複が削除されて並びます。 Sheet2の10行目以下に転記する方法をご教示願います。
補足
ありがとうございます。 実行してみたのですが、400というエラーが出てしまいます。 解決方法はありますでしょうか? Officeバージョンは2010です。
お礼
ありがとうございます。説明が不足しており申し訳ありません。 デバッグの見方もわかりました。 うまく動いているようです。 この場を借りて申し訳ないのですが、仮にBeforeがSheet1、AfterをSheet2に指定したい場合の指定はどのようにできるのか教えていただけませんか?(Sheet1は変化させません) よろしくお願いします。