• ベストアンサー

マクロの変更の仕方を教えて下さい。

前任者の作ったエクセルの表を使っています。商品販売と計算の2種類のシートがあります。商品販売にはマクロに関係する集計とクリアの二つのボタンが作られてあります。教えて頂きたい何点かがあるのですが、最初にクリアのマクロの変更をお願いします。 商品販売のエクセルの行数を現在の300行から600行に増やしたいのです。エクセルの表は増やせるのですが、マクロは単に300の数字を600に訂正するだけでいいのか分かりません。是非教えて下さい。 Range("A6:B300,E6:E300,G6:G300,I6:I300").Select Range("I6").Activate Selection.ClearContents Sheets("計算シート").Select ActiveWindow.SmallScroll Doun:=-15 Range("T3:AI297").Select Selection.ClearContents ActiveWindow.SmallScroll Down:=-231 ActiveWindow.ScrollRow=55 ActiveWindow.ScrollRow=54 と55 54 53 52 49 46と数字が不規則に小さくなりながら続き、最後は3で終わり ActiveWindow.ScrollRow=3 Range("R2").Select Sheets("商品販売").Select Range("I1").Select ActiveWindow.ScrollRow=295 ActiveWindow.ScrollRow=294 と今度は295 294 292 291 288 285 279とまた数字が続き 最後は ActiveWindow.ScrollRow=6 Range("I2").Select End Sub ActiveWindow.ScrollRow= の数字の意味が全く分かりません。構わずに最初の300→600の訂正だけで大丈夫でしょうか?

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>Range("A6:B300,E6:E300,G6:G300,I6:I300").Select >Range("I6").Activate >Selection.ClearContents これは今選択しているシートのRange("A6:B300・・ を選択して 選択しているセルを消去する命令です。 セルを消去するのにセルを選択する必要はありません それとシート名が決まっているのなら明示してやりましょう Sheets("????").Range("A6:B600,E6:E600,G6:G600,I6:I600").ClearContents

noname#194447
質問者

補足

本当にありがとうございます。 300を600に修正して、("商品販売")とシートの名前を入れます。 消去する列を増やす場合は、…I6:I600,L6:L600,O6:O600")でよろしいでしょうか? また、 Range("I6").ActivateのI6は、O6に修正するのですか?

その他の回答 (3)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.4

No.2です >消去する列を増やす場合は、…I6:I600,L6:L600,O6:O600")でよろしいでしょうか? はい、それでOKです。 >Range("I6").ActivateのI6は、O6に修正するのですか? こちらでは、なぜRange("I6")を選択する必要がわかりません 問題が出るようでしたら修正すれば良いでしょう

noname#194447
質問者

お礼

ありがとうございました。 消去する範囲を修正してみます。

  • nak777r
  • ベストアンサー率36% (49/136)
回答No.3

マクロの記憶を行ったまんまの状態ですね、 マクロの記憶を開始してから記録終了するまで いろいろマウスを動かしたりしたんでしょうね ' A6~B300 E6~E300 G6~G300 I6~I300 を選択 '[CTRL]を押しながらマウスを移動させたと思われる Range("A6:B300,E6:E300,G6:G300,I6:I300").Select 'I6 のセルが選択されている状態 Range("I6").Activate '[Delete]キーを押した Selection.ClearContents '計算シートをクリックした Sheets("計算シート").Select 'アクティブになった計算シートで 'スクロールバーを動かして ActiveWindow.SmallScroll Doun:=-15 ' T3~AI297 のセルを選択 '[CTRL]を押しながらマウスを移動させて選択した Range("T3:AI297").Select '[Delete]キーを押した Selection.ClearContents 'スクロールバーを動かして ActiveWindow.SmallScroll Down:=-231 'スクロールバーを動かして ActiveWindow.ScrollRow=55 'スクロールバーを動かして ActiveWindow.ScrollRow=54 'スクロールバーを動かして と55 54 53 52 49 46と数字が不規則に小さくなりながら続き、最後は3で終わり ActiveWindow.ScrollRow=3 'R2のセルをクリック Range("R2").Select '商品販売 シートをクリックした Sheets("商品販売").Select 'I1のセルをクリック Range("I1").Select 'スクロールバーを動かして ActiveWindow.ScrollRow=295 'スクロールバーを動かして ActiveWindow.ScrollRow=294 'スクロールバーを動かして と今度は295 294 292 291 288 285 279とまた数字が続き 最後は 'スクロールバーを動かして ActiveWindow.ScrollRow=6 'I2のセルをクリックした Range("I2").Select

noname#194447
質問者

補足

ご回答ありごとうございます。 ActiveWindow.ScrollRow=数字 は、全部削除しても大丈夫でしょうか? 分からないので、機能を果たす一番シンプルなものにしたいのです。 どうぞ宜しくお願い致します。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.1

一行ずつ、どのような動作をするのか確認しましょう > Range("A6:B300,E6:E300,G6:G300,I6:I300").Select Rangeの中に書かれたセルの範囲を選択する →マウスでぐりぐりっと選択するのと同じです > Range("I6").Activate Rangeの中に書かれたセルをアクティブにする →マウスでぐりぐりっと選択したときの白っぽくなているセルが「アクティブセル」です > Selection.ClearContents 選択されたセル範囲のデータを削除します ⇒削除する範囲を変えたいときは、1行目を変えてやればよさそうだと思いませんか? > ActiveWindow.ScrollRow 画面をスクロールする命令です 途中経過を見ながらマクロを実行するのでもない限り、必要ありません わからないコマンド等は、カーソルを合わせてF1を押せばヘルプを確認できます。

noname#194447
質問者

お礼

ありがとうございました。 一行目を修正してみます。

関連するQ&A

専門家に質問してみよう