• ベストアンサー

エクセル マクロのRowsの使い方

エクセルのマクロで、ある行の下に2行または3行を追加するマクロを組んでいます。2行を追加するマクロは Rows(i + 1 & ":" & i + 2).Insert でマクロが動きますが、 Rows(i + 1 & ":" & i + 2 & ":" & i + 3).Insert と3行を追加するマクロでは、黄色くなってバグになります。 ”&”の使い方が悪いのでしょうか。または、この表示以外、別な記載方法はありますでしょうか。 お願いいたします。(WindowsXP、Office2003)

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

間違い: Rows(i + 1 & ":" & i + 2 & ":" & i + 3).Insert 正解: Rows(i + 1 & ":" & i + 3).Insert 変数を使わないで書いてみると 正解: rows("3:4").insert 正解: rows("3:5").insert 間違い: rows("3:4:5").insert  こんな書きぶりはありませんということです。

iceblue88
質問者

お礼

早くお返事いただきありがとうございます。考え方を教えていただき、ありがとうございます。これから試してみます。まずはお礼まで。

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

その他の回答 (1)

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

Sub test01() i = 1 'Rows(1).Insert ' Rows(3, 4).Insert 'エラー 'Rows(3:4).Insert 'エラー 'Rows("3:4").Insert 'OK 'Rows("3,5").Insert '効果なし Rows(i + 1 & ":" & i + 4).Insert End Sub を参考にして。 ’を1行だけはずして実行してみる。 A1-A10セルに1-10を入れて、実行すれば、OKの場合挿入さてた結果がよくわかるだろう。

iceblue88
質問者

お礼

早くお返事いただきありがとうございます。できない場合、試す方法を教えていただきありがとうございます。これから試してみます。まずはお礼まで。

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

関連するQ&A

  • エクセルでページをコピーして貼り付けるマクロ

    [sheet1]内での作業ですが… 雛形のページを1枚作成して、複数枚のページが必要になったので「マクロの記録」で1ページ分の行をコピーして、1ページの下に貼り付けてみました…で、それは実行できるのですが、3ページ目では実行できません。 マクロの知識はありませんが、ページを貼り付ける行が変更できないからだなぁ~と。 ===================== Sub ページを追加() ' ' Macro1 Macro ' マクロ記録日 : 2013/12/12 ユーザー名 : エクセル-NOTE ' ' Rows("9:51").Select Selection.Copy Rows("52:52").Select ActiveSheet.Paste End Sub ===================== 何処でも好きな行を選択してページを増やすことはできないのでしょうか? ただ、単純にページを下へ下へと、必要な分だけ追加したいのです…が。 上の「数行」は見出しに利用しています。

  • Excelのマクロで現在行を指定する方法を

    Excelのマクロで現在行を変えて、現在見ている行にする方法を教えてください。 下記は操作を記録させて作成したものですが、これを例えば、Excelの213行で実行させると 205行に196~203行が再度追加されてしまいます。 これを変えて、現在見ている例えば213行の前に196~203行を入れたいという場合はどうすればいいのでしょうか? つまり、Rows("205:205").Selectの205というのを、現在見ている行に変更できれば良いように思うのですが。よろしくお願いします。 Sub Macro3() ' Keyboard Shortcut: Ctrl+Shift+A   Rows("196:203").Select   Selection.Copy   Rows("205:205").Select   Selection.Insert Shift:=xlDown   ActiveWindow.SmallScroll Down:=9 End Sub

  • 簡単なマクロですが教えてください。

    マクロで、現在アクティブになっているセルのある行全体を選択し、 そこに行を追加(挿入)する。 その後、1行目にある行全体をコピーして、追加(挿入)した 行に1行目の数式をコピーしたいのです。 マクロの記録から作成しようとしたら、 毎回13行目に挿入・コピーするようになってしまいました。 例えば、マクロ実行時に5行目にアクティブセルがあれば、 5行目に挿入したいのです。 この方法を教えて頂けませんでしょうか。 現在の誤ったマクロ構文を付けますので、 どのように直したらよいか教えて頂けませんか。 何卒よろしくお願いいたします。 Sub osietekudasai() ' ' osietekudasai Macro ' ' Rows("13:13").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Rows("1:1").Select Selection.Copy Rows("13:13").Select ActiveSheet.Paste Application.CutCopyMode = False Range("A13").Select

  • エクセルマクロで行の選択のしかた

    教えてください。エクセルマクロで… 変数iを使って、たとえばi行目からi+2行目を選択したい場合、  rows( ) の括弧の中はどういう風に記述すれば良いのでしょうか。 お願いします。

  • excel マクロ ○○集計 の下に空白行を2行入れる

    Win XP Office2000 マクロ初心者です。 エクセル集計機能を使って作った表の太字で表示される○○集計の 行の下に空白行を2行挿入したいのです。 普通に行の挿入をすると○○集計の上に入ってしまいます。 Sub 行の挿入() Selection.SpecialCells(xlCellTypeFormulas,).Select Selection.EntireRow.Insert End Sub このマクロに何かを加えるとできると思うのですが、よろしくお願いします

  • Rows("20:20").Selectについて

    よろしくお願いします こんな簡単なことが分かりません どなたか教えてください マクロを記録すると Rows("20:20").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove と記録されました また Private Sub Worksheet_Change(ByVal Target As Range)内のマクロで Debug.Print Target.Row と書くと 20が表示されます そこで Rows("20:20").Select の20をTarget.Rowに置き換えるには、マクロではどう書いたらよいでしょうか 色々試しましたがエラーで進みません うまく表現できていませんが、どなたか教えてください  

  • Excelのマクロで

    Excelのマクロで 月ごとにセルを結合させたいのですがわかりません。 例えば 2010/2/20~2010/5/10 このとき A1~H1のセルを結合(2月) I1~AM1の結合(3月) というふうに表示させたいです。 2行目にはそれぞれ日を表示させたいのですが どうすればいいですか? 教えてくださいお願いします。 期間がが変更されたらその期間が表示されるように Excelマクロでお願いします。

  • エクセルのVBAマクロについて

    エクセルのVBAマクロについて、添付のような物を考えているのですが、宜しくお願いします。 B3~E15に関数を入れて、TRUE となったデーターを表示 させるまでは出来たのですが、このデーターをF~I列へ上から順に (空白行は詰めて)順次記録して行きたいのです。 B3~E15に表示させるデーターは、別シートから抽出し、 切り替えますので、結果を表示させたら、ボタンを押して記録し、 再度別データーを入れたらその下に記録して行くような仕組み を考えております。 宜しくお願いします。

  • エクセル 行追加マクロについて

    エクセル 行追加マクロについて 2007エクセルマクロ初心者です。 スケジュール表を作成、行追加マクロを作ろうとしてます。 シートの上下に表があり、上の表に行追加です。 関数式を壊したくないので、一部セルへロックをかけています。 以下の点についてご教授をお願いいたします。 行追加マクロを実行するとパスワードを要求されます。 聞かれないようにできないでしょうか。? パスワードを入力した以降は要求されませんが シートの保護解除を選択すると保護が解除されてしまいます。 パスワード記載のマクロを試したことがありますが、 表へオートシェイプが描写できなかったので断念しました。 Sub 行追加() With ActiveSheet 'シート保護解除 .Unprotect Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 79).Select Selection.Copy Selection.Insert Shift:=xlDown Range("A65536").End(xlUp).Offset(-8).Select ActiveCell.Resize(1, 9).Select Selection.ClearContents 'シート保護 .Protect DrawingObjects:=False, Contents:=True, Scenarios:= _ True End With End Sub

  • エクセルのマクロでの質問です

    エクセルのマクロでの質問です。 やりたいことは、 明細シートから、「1.3.5」の条件に合うものを実績シートの最終行にコピーして追加していきたいんです。 これだと、実績シートの最終行にはコピーされるんですが 最終行に全部が上書きコピーされる状態になってしまってます。 どう直せば、追加される形になりますか? Sub コピー() '1,3,5のものを実績にコピーする i = 5 J = Sheets("実績").Cells(Rows.Count, 4).End(xlUp).Row + 1 Sheets("明細").Select Do While Cells(i, 8).Value <> "" If Cells(i, 3).Value = 1 Or Cells(i, 3) = 3 Or Cells(i, 3) = 5 Then Range("D5", "H5").Copy Sheets("実績").Select Range("C" & J).PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False End If i = i + 1 Loop End Sub まったくのマクロ初心者です。 分かりやすく教えていただけると、助かります。 また、参考になりそうなサイトなどがあったら、教えてください。

このQ&Aのポイント
  • ゲームの趣味が同じ人から連絡があり、LINEでやりとりを始めましたが、急に距離を縮められて困っています。
  • 相手は40歳で私は30歳で、年の差は気にしていませんが、相手の態度やメッセージの内容が気持ち悪く感じます。
  • 相手が私の人格障害を理由に依存しているような態度を取っており、私はまだ相手を信頼するには早いと感じています。距離を取る方法を知りたいです。
回答を見る

専門家に質問してみよう