• ベストアンサー

空き番を埋めていくマクロを作りたい(再)

こんにちは、 先日、http://oshiete1.goo.ne.jp/qa4757955.htmlで質問をして、回答いただき、解決したと思ったのですが、困ったことが起こったので助けて下さい。 回答いただいたマクロで確かに空き番を埋めることはできたのですが、前提条件として、データが出席番号順になっていないとちゃんと機能しないようです。 数学などで習熟度クラスを行っているために、出席番号順になっていないシートも空き番を埋める処理をしなければなりません。もちろん出席番号順にソートし直してからすればいいわけですが、最初にソートをしないでもできる方法はないでしょうか? 私が考えたのは配列を使って、使われている番号を0に書き換え、使われていない番号はそのままにして、0以上の配列を書き込んでいくというものですが、かなり時間がかかります。もっとスマートなやり方はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.1

>最初にソートをしないでもできる方法はないでしょうか? 逆に言えば最初にソートすればOKなのでしょう? ソートするマクロを自動記録で作成して、処理の最初に付け加えればいいのでは? ソートして、元の順番を変えたくないというのであれば、 1)空いている列を作業列として最初の順番の控える(1、2、3…を入れる) 2)ソートする 3)必要な処理をする 4)作業列でソートし直す(元の順序に戻す) 5)作業列をクリア で可能ではないでしょうか? 1)、2)、4)、5)程度であれば、それぞれをマクロの記録で作成して、簡単な修正をすればできるでしょう。

CaveatEmptor
質問者

お礼

回答ありがとうございます。 なるほど、それでもいいですね。ソートをするマクロはすでに作ってありますし。目から鱗とという感じです。

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.2

よくわかりませんが、使用されていない番号を拾い出すような感じのことなのでしょうか? 例えば使用されている生徒番号をDictionaryオブジェクトに放り込む。 その後10101~10750の生徒番号を発生させ、その生徒番号がDictionaryになければ 使用されていない番号となりそうですが、そうゆう事とは違いますかね? 的はずれでしたらごめんなさい。

CaveatEmptor
質問者

お礼

回答ありがとうございます。 なるほど、なるほどという感じです。 Dictionaryオブジェクトという手がありましたね。あんまり使ったことがないので、思い浮かびませんでした。勉強して、マクロを改変したいと思います。

関連するQ&A