• 締切済み

エクセルVBAでどうしても参考書通りにならない!!

私はFOMエクセルエキスパートの問題集をもとに勉強しています。 あるVBAの問題でどうしても結果が同じようにならないのです。 問題は、最初から、形のあるシートAに「来場者数ベストという名前でマクロの記述」記述内容「来場者数が多い順⇒上位3件のレコードを青、セルA1を選択」   次に「リセットという名前でマクロの記述」⇒記述内容「上位3件のレコードを黒、ナンバー順に並びかえる、A1を選択」 この2つのマクロをシートAに「ボタン」として2つ作りました。この時点では、問題はありません。どちらのボタンを押してそれぞれのマクロが記述されます。 この後のVBAでひっかかっています。 VBEを使ってマクロ「来場者数ベストの上位3件のレコードが青であったものを、上位5件のレコードを赤にする。」そうすると、なぜかここでもう一方のマクロ「リセット」の方の表の一覧に、指定もしていないのに「赤のレコードが2件」出てくるのです。 なぜでしょう? 文字だけで、説明しております。なかなかお伝えづらいのですがご回答いただけるのであれば是非よろしくお願いします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 直接の回答とは違ってきますが、もし、つなげて考えれば、簡単なロジックです。 しかし、ロジックをつなげられるのは、なれていないとできません。 「順位づけ1・マクロ」 (a) 順位 1~3 ->青 「順位づけ2・マクロ」 (b) 順位 1~5 ->赤 「リセット・マクロ」 (c) 順位 1~3 -> 番号順に並べ替える 3つを黒に変更 これを一緒だと考えれば、(b)の一部が入らないので、2 つが残ってしまいます。 マクロを覚えるつもりでしたら、これらは、単発で行っていったほうがよいです。 今、マクロの段階が、どこの段階かは良くわかりませんが、本来、そのあたりのマクロは、一回やって、わからない場合は、後回しにするのが一般的です。あまり、そういう部分で考え込まないほうがよいです。先は、まだ長いですから。途中で疲れてしまいます。 上記の場合、問題集として解答は見えてきませんが、学習用のマクロとしては、それぞれは別ものです。基本的には、私は、そのあたりは、入り組んでいて、覚えにくいように思います。 >シートAで作った2種類のマクロは「関連してる」ということですか? FOMのテキストの特徴は、一通り、マクロで何かの仕事をさせようとしますが、その内容からは、別々のものとして完成させるようにできているはずです。しかし、それ以上に、そういう処理は、Rangeオブジェクトについて、きちんと理解していないと、なかなか思うようにできません。その段階までは、まだ、当分先の話のような気がします。 マクロを覚えるときには、なるべく短い構文を数多くこなして実行するようにしたほうがよいです。だいたい、500個ぐらい自分の手で書いて、実行させるようにしてください。

noname#27182
質問者

お礼

そうなんですよね。断片的にVBAをやっても、あまり意味がないと私自信思うんですよ。段階を踏んで1から10までやらないと・・・・。 ご回答ありがとうございました。マクロの分野は、試験後勉強をしなおします。とりあえず、今回は、合格点に達することができればいいので・・・。

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>来場者数が多い順⇒上位3件のレコードを青、セルA1を選択 とは「来場者数が多い順に並べ替えを行ってから、上位3件の色を青にする」ということですか? >上位5件のレコードを赤にする も同様でしょうか? だとすると、上位5件が赤色になっているのに、「リセット」では上位3件だけ黒色に戻していますね。「リセット」を実行すると当然2件は「赤」のまま残ってしまいます。そういう原因ではないのでしょうか? リセットマクロは「上位3件のみ黒色にする」のではなく、「リスト全件を黒色にする」ようにしたら、汎用的になると思います 意味が異なっていたらごめんなさい

noname#27182
質問者

補足

そうです、「来場者数が多い順に並び替え、上位3件を青、そしてセルA1を選択してマクロの記述終了」です。上位5件のレコードを赤に・・・も同様です。 貴殿のおっしゃることは、シートAで作った2種類のマクロは「関連してる」ということですか?私は、この2種類のマクロは別の物、つまり、マクロ「売上ベスト」を選択すると「売上ベスト」で「記述」したマクロが表示され、マクロ「リセット」を選択すると「リセット」で「記述」したマクロが表示されるのでは・・・・と。 「意味が異なっていたらごめんなさい」←長々とした文章に回答いただきありがとうございます。

関連するQ&A