• ベストアンサー

マクロで行挿入がうまくいかない理由は?

XPでOFFICE2007です。マクロ未熟者です。 マクロで、行挿入だけであればうまくいきますが、行挿入した後でその行に文字を入力するマクロでは、その行ではなく1行前のセルに文字が入力されてしまいます。 変なことになるのは、マクロを作成する過程で、行挿入が上の書式をコピーすることと関連がありそうなのですが、何に注意すればうまくいくのでしょう。 とりあえず今のところは行挿入を使わずに上の行をコピーして挿入する方法でうまくいっています。しかし行挿入後の文字入力がうまくいかないのか、その理由と対処方法がわかれば教えてください

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

質問するのにコードを載せないで、そのプログラムの動きが云々はおかしい。 例えば A5をアクチブにして Sub test01() ActiveCell.EntireRow.Insert End Sub を行うと元のA5はA6の位置に来て、A5に行挿入される。だから行挿入された行にデータを入れるなら、ActiveCellに値を代入すれば。 Sub test01() ActiveCell.EntireRow.Insert ActiveCell = "aaa" End Sub 下に行挿入したいなたもとの行+1をActiveにして上記を実行すればよい。 どちらも調節の世界のことではないかな。

matherlake
質問者

補足

ご指導ありがとうございます 失礼しました。コードを付けます ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Selection.Copy ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False ActiveCell.Range("A1:C1").Select Selection.ClearContents ActiveCell.Select ActiveCell.FormulaR1C1 = "12" ActiveCell.Offset(1, 0).Range("A1").Select 以上です。12月なので「12」と入力しています

その他の回答 (1)

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

コードがないので何とも言えないですが。 行挿入後にOffsetで1つ下をSelectしては?

matherlake
質問者

補足

ご指導ありがとうございます コードを付けます ActiveCell.Offset(-1, 0).Rows("1:1").EntireRow.Select Selection.Copy ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select Selection.Insert Shift:=xlDown Application.CutCopyMode = False ActiveCell.Range("A1:C1").Select Selection.ClearContents ActiveCell.Select ActiveCell.FormulaR1C1 = "12" ActiveCell.Offset(1, 0).Range("A1").Select 以上です。12月なので「12」と入力しています

関連するQ&A

  • エクセルマクロで行挿入

    エクセルマクロで行挿入 マクロ初心者です。 仕事で、受注した内容をエクセルで管理しているのですが、頻繁にキャンセルや日程変更があり、1日単位でデータを管理しているものですから、かなりデータ入力に労力が取られている状況です。 キャンセルや日程変更になったデータに関しては、行ごと削除するのではなく、行単位で取り消し線と文字を赤にして、見た目で無くなったということがわかるようにしています。 また、受注したら行を挿入して新しいデータを入力しています。 そこで、赤字で取り消し線にて入力されている行の一つ上の行に挿入、ということをマクロでできないかと思っています。 赤字に取り消し線の行に関しては、何行目になっているかはその日によって違うので、その指定と、書式を指定する方法がわからない状況です。 マクロで上記のことができるのであれば、ご教授いただけると助かります。 宜しく御願いいたします。

  • エクセルマクロの行非表示及び挿入

    エクセルマクロの方法について質問です。 今6~70行の中に表(入力項目は3行一体)を作っていてそのEセル(3行の結合セル)に”済”と入力すると3行で一体の行を非表示にし、非表示にしたことで入力行が減ってしまうので、非表示にした後に最後から2つ目の3行一体の行にコピーして行を挿入する構文を教えてください。 なお、最後の行挿入だけはマクロの自動記憶でも出来そうでしたが、その前段階の非表示がどうしてもうまくいきません。

  • エクセル マクロでの行挿入は・・・・

    マクロを勉強中です。 特定の列の値(下の表では5列の『サブコード』です)が、 4~6 の時に、1行挿入し上の行のコピーを貼りつけ、 7~9 の時は、2行挿入して上の行をコピー貼りつけ・・・ という作業が、マクロでできますでしょうか? ご回答を、お待ちしております。 どうか、よろしくお願い致します (u_u)

  • Excelでの行の挿入について

    マクロについて教えて下さい。 例えばA1のセルに5と入力した場合に 3行目と4行目の間に5行挿入したいのですが・・・ マクロでなくても出来る方法があればそちらも教えて頂ければ幸いです。

  • 行の挿入で数式も自動的に挿入

    C1列に=SUM(A1:B1)を入力し、オートフィルを30行目までかけました。 3行目で行の挿入をした時に 自動的にC列に数式が入力されている状態 (上の行、又は下の行のコピーを挿入) にしたいのですがどうすればよろしいでしょうか? 行をコピー  → コピーしたセルの挿入 以外の方法はあるんでしょうか? よろしくお願い致します。

  • マクロでコピーしたセルを4行目毎に挿入する方法

    こんにちは!よろしくお願いいたします。 Excel2003で計算式が入力されている1行をコピーして 4行目にコピーしたセルを挿入したいのですが、複数 あるため、マクロを作りたいと思っています。   A   B  C 1 氏名 住所 件数  → 計算式が入力されている 2 氏名 住所 電話 3 氏名 住所 郵便 4 氏名 住所 ふりがな            → 1行目の計算式も含めコピーしたい この操作を繰り返すマクロを作成したいと思っています。 マクロは初心者です。ご指導よろしくお願いいたします。

  • Excel表への行(または列)挿入について

    Excel表への行(または列)挿入について教えてください。 表にはデータ、および網掛けなどの書式が入力されています。 表の末端まで埋まったために、末端行に挿入して行を増やそうとすると、 前の行と同じ網掛けがコピーされて挿入され、表罫線はコピーされません。 やりたいこととしては、挿入したあと、新しい行は表の罫線を引き継いだ状態で、網掛けの書式はコピーしたくありません。 現在はわざわざ末端からひとつ上の行に挿入をして、それを切り取り、 末端に貼り付けしているのですが、良い方法はないでしょうか?

  • 「新しいマクロの記録」機能を使っての行挿入

    「新しいマクロの記録」機能を使って1行と2行の間に10行の空白行を挿入後、A13のセルを選択というマクロを作りました(マクロ1とします)。このマクロを実行すると1行と2行の間に10行の空白行が挿入された後、A13が選択されます。ここでもう一度、マクロ1を実行すると1行と12行の間にさらに空白行が10行挿入されA13が選択されます。このようになるのは当たり前と言えば当たり前なのですが、2回目にマクロを実行したときに12行と13行の間に10行の空白行が挿入された後、A24が選択されるようにするには、どのようにマクロを記録すればよいのでしょうか?  ようは、10行の空白行を挿入した後、セルを11行下に移動させるというマクロを作りたいのです。VBAの記述方法はほとんど分からないので「新しいマクロの記録」機能を使うことを前提にご教授ください。

  • 関数が含まれたセルの行をマクロで挿入する

    セルD2には、IF関数が含まれている、以下の表があります。2行目に行をマクロで挿入して大きな表を作成する予定です。        A       B       C      D      1    納入数   使用m数   納入m   使用m 2                           〔=if(B2>1,C2,"")〕 マクロは、以下のようにして、2行目に行を挿入したのですが、IF文が含まれたものが 挿入できません。どのようなマクロ文にしたらよいかわからず困っています。別シートからコピーする 方法も考えられますが、同じシート内で収めたいと考えています。宜しくお願いします。 Sub 行挿入() ' ' 行挿入 Macro ' ' Range("a2:d2").Insert copyorigin:=xlFormatFromRightOrBelow End Sub

  • EXCEL2003で行や列を挿入した時・・・

    EXCEL2003で行や列を挿入した、書式も自動的に 上の行や左の行のものが適用されますよね。 その時、SUM関数などはどうでしたか? 列を挿入した時は、挿入後にコピーをしなくてはならないかと 思いますが、行を挿入した時は 上のSUM関数が既に入ってたことがあるように思うんですが、 入らないときもあるので、どうなのかなと思いまして・・・(^_^;) 行でも列でも挿入後に上や隣のセルの書式が適用されるように SUM関数も入ってたりはしないのでしたか? わかりにくい質問ですみません。。。

専門家に質問してみよう