- ベストアンサー
「新しいマクロの記録」機能を使っての行挿入
「新しいマクロの記録」機能を使って1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを作りました(マクロ1とします)。このマクロを実行すると1行と2行の間に10行の空白行が挿入された後、A13が選択されます。ここでもう一度、マクロ1を実行すると1行と12行の間にさらに空白行が10行挿入されA13が選択されます。このようになるのは当たり前と言えば当たり前なのですが、2回目にマクロを実行したときに12行と13行の間に10行の空白行が挿入された後、A24が選択されるようにするには、どのようにマクロを記録すればよいのでしょうか? ようは、10行の空白行を挿入した後、セルを11行下に移動させるというマクロを作りたいのです。VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「記録」状態で 記録終了ボタンの右にある「相対参照」ボタンを押してから、記録してはどうでしょうか
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。 「記録マクロ」は、特殊なものが多いし、不都合な部分が一杯あります。なるべく早く、記録マクロは卒業するか、一旦、頼るのを辞めないと、マクロは覚えられません。 自分が、マクロを使おうとしたら、少しずつでもよいから、自分で獲得しようとしていったほうが、自分の何かを作ることの面白さや喜びも増すと思います。最初から、拒否反応するのは、楽しみを減らすようなものだと思います。 私個人、プログラムも何にも知らないまま、いきなり「セルの合計を出すマクロを作りない」という問題をやった覚えがあります。さっぱり分かりませんでしたので、最初に、紙の上で、ああでもないこうでもない、書きながら考えました。 記録マクロのほうは、なかなか、Excelの動き自体が見えていない難しいと思います。最初に、ユーザー設定-ツールバーから、「記録終了ボタン」を出して、その中の相対参照設定ボタンを押して、次に、A2 にセルポインタを置いてから、記録マクロをはじめます。 そうすると、こんなものになるはずです。 ActiveCell.Rows("1:10").EntireRow.Select '10行を選択しています。 Selection.Insert Shift:=xlDown '右クリックで挿入をクリック ActiveCell.Offset(10, 0).Range("A2").Select '一行下のA13を選択します。 私は、この種のコードがさっぱり分からなかったのです。なぜ、A2 とか出てくるのか、とか。それを本当に理解したのは、1年後ぐらいです。掲示板などにも、めったに出てきません。相対参照のコードというのは、マクロでは非常に特殊なものだからです。 以下は、私が考えたマクロです。内容的にも、ずっとすっきりしているはずです。最初に、A2 にセルを置いてから、実行すれば、ずっと続いていくはずです。A2 -> A13 -> A24 ->A35 ->A46 となって行きます。 Sub InsertMacro1() With ActiveCell .Resize(10).EntireRow.Insert Shift:=xlShiftDown .Offset(1).Select End With End Sub
お礼
ご回答ありがとうございました。
- abukuma06
- ベストアンサー率51% (43/83)
1回目に、1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを「Macro1」で登録した後、 2回目に、12行と13行の間に10行の空白行が挿入された後、A24のセルを選択したマクロを「Macro2」でマクロを登録し、 Macro1とMacro2をコマンドボタンに登録するという方法ではだめでしょうか。 コマンドボタンへの登録方法は以下のサイトを参照してみてください。 http://www.eurus.dti.ne.jp/~yoneyama/Excel/vba/vba_01.html
お礼
なるほど、そういう方法もありますか。参考にさせていただきます。
お礼
解決しました。以前はうまくできたのに今回はうまくいかず、困っていました。助かりました。