• ベストアンサー

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

データを入力するフォームにコマンドボタンで行挿入したいのですが、うまく出来ません。最下段に合計する欄が設けてあるので、その直前に行挿入したいのです。挿入後も常に合計欄の直前に行挿入できるようにするにはどうすればよいのでしょうか?

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

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

行の挿入はわかると思いますので、最下行を調べる方法について・・ よく用いられている方法は、キーとなる列(その列の内容で判断しても良い列)を設定しておいてその列の入力値で最下行を求めるものです。 例えば、A列をキーとする場合で、対象とするシートオブジェクトをstとすれば、最下行番号は以下の式で求められます。 (もちろんループで順に探していく方法でも可能です。)   st.Cells(st.Rows.Count, 1).End(xlUp).Row '//下から見ていって最初の入力行 あるいは、列の最下行までデータに空白がないことがわかっていれば、以下でも同様です。   st.Cells(1, 1).End(xlDown).Row '//上から入力値が連続しているブロックの最後の入力行 最初の例では、下の方に空白などが入力されているセルがあると、(入力値は見えませんが)それを最下行と判断しますので、誤操作などでこのようなゴミが入力されることがないことを前提としています。 このようなことを避けたければ、最下行のユニークな値(例えば「合計」とか)を併せてチェックするなどの方法をとることで、確認することができるでしょう。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

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

最終行(最下段の行)を求めれば挿入したい行となります。 あとは下へシフトするだけです。 マクロの自動記録が参考になるかと。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセル マクロ 行

    エクセル マクロについて Sheet1にはボタンがあり そのボタンをクリックすると フォームが表示してそのテキストに記入して、記録ボタンを押すと Sheet1最終行のフォームからシートにコピーするボタン方法は出来るのですが・・それだと最終行が新しい記載になってしまいます。 Range("a65536").End(xlUp).Offset(1).Select Selection = Selection.Row - 1 例えば A1 タイトル A2  小項目 A3  挿入させたい! A列の3行目から挿入して、その後も常にA3から挿入したいです。 新しい記載は常にA3にさせたいのですが、どうすれば良いのでしょうか?記述を教えて下さい。

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

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

  • エクセルでデータの最後の行に行挿入後の合計されない

    エクセルで文字・数値データを作成しております。その最後の行に合計(SUMとSUMIFを使用)を出す表があります。 データの最後の行(合計の前)に行を挿入しデータ数値を入力すると、SUM(SUMIF)の合計が、前にあったデータまでしか、合計されません。 単純な計算では、行を挿入しても合計されるのに、ナゼ今回は出来ないのでしょうか?原因が分かる方は、いらっしゃいませんでしょうか? 宜しくお願い申し上げます。

  • エクセル 行の挿入について

    EXCEL2002を使用しています。 行を挿入しようとしましたら、次のようなエラーメッセージがでました。 『データの消失を防ぐため、空白でないセルをワークシートの外にシフトすることはできません。 Ctrl+Endキーを押して最後の空白でないセルに移動し、そのセルとデータを削除、またはクリアしてください。 その後、セルA1を選択し、ブックを保存して最後のセルをリセットしてください。 または、データを新しい位置に移動し、もう一度行ってください』と。 データを入力した後、入力漏れに気がついたので、行の途中に入力漏れしたデータを挿入したいのですが、どのようにすれば、行の挿入ができるでしょうか。 (例えば、1行目から100行目までデータを入力した後に、10行目に新たにデータを挿入したい場合) よろしくご教示願います。 なお、OSはウィンドウズXPです。

  • excelで行挿入について

    excel97を使っているのですが、まず下の表を見てください。 行/列   A  B  C   1  メーカ      2  あ           3  い             4  合計           5  う         6  え           7  お              8  か                このような表があるのですが、行1~4で一つのグループなんです。 同じように  行4と行5の間に「メーカ」  行6と行7の間に「合計」 というふうに「メーカ」挿入、2行空けて「合計」挿入、「メーカ」挿入・・・を約千行分繰り返して 行/列  A  B  C  1  メーカ      2  あ      3  い      4  合計      5  メーカ      6  う      7  え      8  合計      9  メーカ     10  お     11  か     12  合計     このようにしたいのですが、簡単な方法は無いでしょうか?

  • エクセルマクロでのセルの削除、挿入

    A1:G20の表があります、A1:G17にデータが入っています、20行目は合計欄です。 ここでデータ面の任意のセルをアクティブにしアクティプセルとその右のセル2個をマクロで削除し上に詰めます。(B5がアクティブだとB5、C5、D5が削除) 当然合計欄の当該列のセルが上に移動します。その為18行でセル挿入を行い20行目に合計が表示されるマクロの記載を教えてください。よろしくお願いいたします。

  • 常に特定の行の上に新規行挿入するマクロ

       A , B 1: 1月,1000円 2: 2月,2000円 3: 計,SUM(B1:B2) 4: 月,  円 という表があります。 4行目を常に計行(上記の場合は3行目、仮に3月分まで入力している場合は4行目になる)の上に挿入し、合計は挿入行分も含まれる、というマクロは可能でしょうか? ご存知の方おられましたらご教授願います。

  • Excel VBA で行挿入

    Excel2002を使っています。 質問させていただきます。 VBAで行を挿入したいのですが、たとえば以下のようにデータがあります。  A列  東京  東京  東京  大阪  大阪  名古屋 予めデータはソートされています。 この状態で、東京と大阪の間、大阪と名古屋の間に1行挿入(空行)したいです。 コマンドボタンをクリックしたときの動作の一つとして実現したいのですが方法がわかりません。 ご指導いただければ幸いです。

  • エクセルマクロ、集計行の上に空白行挿入

    エクセルデータがA、B、C、D、E列1000行まであります。 C列基準でE列を合計するマクロを作成しましたが(集計行はデータの下に挿入)、実行の結果、新たに挿入される集計行の上に空白行を1行挿入していくということを、作成したマクロに付加できるでしょうか? ご教授頂きたく、お願いします。

  • エクセル 行を挿入しても正しい合計値を出す方法。

    添付のようなエクセルの表を作成して管理台帳としています。 (実データは載せられないため、簡易版にしています。) 今、B9セルには(=SUM(B3:B8)が入っています。 8行目と9行目の間に行を挿入しても、合計値がきちんと(=SUM(B3:B9)の値を持ってくるようにしたいです。 過去の質問 http://okwave.jp/qa/q4644868.html 参考にして、『あ』ではできたのですが、『い』、『う』、『え』、『お』でも同様に合計値を出したいのです。 『あ』で行を挿入すると、『い』、『う』、『え』、『お』の各項目の行がずれて、 さらに『い』、『う』、『え』、『お』でも行の挿入を行います。 (挿入する行は、『あ』、『い』、『う』、『え』、『お』すべて合計値の前の行に挿入します。) きちんと、『あ』、『い』、『う』、『え』、『お』の各合計値を出す方法はありますでしょうか。 私が使っているのはエクセル2007ですが、エクセル2000を使っている人に渡すデータです。

専門家に質問してみよう