• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Resizeの意味、使い方)

Resizeの意味、使い方についての質問!

このQ&Aのポイント
  • Resizeの意味、使い方を忘れてしまいました。
  • 下記のマクロで、Resizeがどのような意味になるのか教えてください。
  • また、マクロ上において、1行挿入後に行われる「prow = prow + 1」の処理についても教えてください。

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

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

ご質問の内容はResizeとは全く無関係ですが,何を聞きたかったのでしょう。 とりあえずご質問の直接の回答として。 I列のあるセル(たとえば7行目)にPが入っていたら,7行目に一行空行を挿入し,今まで7行目に入っていたP行は8行目に押し下げられる。 なのでこのタイミングでprowを+1して8にしておく(=言い換えると今押し下げたP行は既に「8」行目に移動している)ことで,はじめてEnd Ifの次の「次の行を調べるため+1する」が正しく機能します ちなみに rows(prow).resize(1) は全く無意味で, rows(prow).insert shift:=xlshiftdown とするのと同じ結果になります。 もちろん,1行挿入じゃなく2行とか3行空行をまとめて挿入するなら,ありです。 (言わずもがなですがそういうことをした暁には,またprow = prow + 1の部分を今度は直さなきゃですけどね)

makkurobouzu
質問者

お礼

ご回答ありがとうございました。 質問文章が支離滅裂なのに、その要約までしてくださり・・・。(^^;) rows(prow).resize(1) は全く無意味だったんですね。 この構文に何か意味があるんだろうとおもっていたので、その意味(効果)を教えてほしかったのと、質問文のマクロでEnd Ifの次の「次の行を調べるため+1する」が正しく機能しているのか?を教えてほしかったのです。 また機会があれば、よろしくお願いいたします。

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

関連するQ&A

  • Excel VBA のDo Until Loopについて

    こんばんは Excel VBAの初心者です。 Do Until Loopを使って B列の値が変わるところ(下記の表だと、空白からコスモスに変わる、4行目。コスモスからチューリップに変わる6行目。チューリップから菊に変わる8行目。)に行を挿入させたいと思い、下記のマクロを組んだのですが、Do Until Loopが理解できませんでした。 どうしたら良いのか教えて頂けないでしょうか。 宜しくお願い致します。 Excelのシート B1  項目 B2  空白 B3  空白 B4  コスモス B5  コスモス B6  チューリップ B7  チューリップ B8  菊 Sub 行の挿入() Dim y As String Cells(2, 2).Select y = Cells(2, 2).Value Do Until Cells(2, 2).Value <> y ActiveCell.Offset(1).Select Selection.EntireRow.Select Selection.Insert shift:=xlDown Loop End Sub

  • セルの値が0はクリアするマクロ

    エクセル2003です。 ある集計表において 4行目のH列からAM列まで 数値データがあります。 最終行は常に変化します この表内にてセルの値が0のセルは セル内を空白にしたいです。 以下のマクロを作成しましたが If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents をあと(処理行, 13)から(処理行,31) まで記述しなければなりません。 構文的にも処理的にも不利? と思うので、なにかいい方法を教えてください。 Sub 数字0クリア() '2012年2月3日節分 Dim 最終行 '最終列をG列で求めます 最終行 = Cells(Rows.Count, 7).End(xlUp).Row Application.ScreenUpdating = False For 処理行 = 4 To 最終行 If Cells(処理行, 8).Value = 0 Then Cells(処理行, 8).ClearContents End If If Cells(処理行, 9).Value = 0 Then Cells(処理行, 9).ClearContents End If If Cells(処理行, 10).Value = 0 Then Cells(処理行, 10).ClearContents End If If Cells(処理行, 11).Value = 0 Then Cells(処理行, 11).ClearContents End If If Cells(処理行, 12).Value = 0 Then Cells(処理行, 12).ClearContents End If If Cells(処理行, 13).Value = 0 Then Cells(処理行, 13).ClearContents End If Next 処理行 Application.ScreenUpdating = True MsgBox "終了しました" End Sub

  • エクセル 行の挿入

    エクセルの行の挿入方法を教えてください。 http://okwave.jp/qa1095365.html?rel=innerHtml&p=bottom&l=1 上記の質問のマクロをコピーし、少し加工して使用させていただいてます。 Sub Macro1() Dim lngCnt As Long '処理行のカウント Dim intCnt As Integer '挿入行数セット ''初期行セット lngCnt = 5 '' 処理行のD列に文字がなくなるまで繰り返す Do Until Cells(lngCnt, 4) = vbNullString ''挿入行数セット intCnt = Cells(lngCnt, 4) + 1 ''挿入行分繰り返す Do Until intCnt <= 0 ''次の行に進む lngCnt = lngCnt + 1 ''行の選択 Rows(lngCnt & ":" & lngCnt).Select ''行の追加 Selection.Insert Shift:=xlDown ''1行追加したので挿入行数から1引く intCnt = intCnt - 1 Loop ''処理行数カウントアップ lngCnt = lngCnt + 1 ''1シートの最大行数を超えたか? If lngCnt > 65536 Then MsgBox "1シートの最大行数を超えました" Exit Do End If Loop ''A1を選択 Range("A1").Select End Sub このマクロでは '' 処理行のD列に文字がなくなるまで繰り返す Do Until Cells(lngCnt, 4) = vbNullString なので、一行抜けてしまうとマクロが止まってしまいます。 これをD行に数字が入っている所はすべて増えるように?止まらないようにしたいのです。 どうすればいいでしょう? 宜しくお願いします。

  • 挿入した行のC列に式を挿入

    Yahoo知恵袋からの回答の引用で Q エクセル マクロでデータごとに1行挿入するマクロを教えてください。 A~AW列にデータが入っていて、同じ品番ごとに1行挿入するマクロを教えてください。 A Sub insRow() Dim i As Long For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1 If Cells(i, 1).Value <> Cells(i - 1, 1).Value Then Cells(i, 1).EntireRow.Insert (xlShiftDown) End If Next i End Sub このようなものがありますが、この最後のinsertにあたって、挿入されて新しく加わる全ての行のC列に式を挿入する方法(例えば、=A13等)を教えて頂けないでしょうか。

  • Excelでwatabeさんに複数のセルを参照

    Excel2007でwatabe007さんに以前に作って頂いたこのようなソースがあります。 Sub Test4() Dim LastO As Long, LastG As Long Dim i As Long, str As String Range("D3", Cells(Rows.Count, "F").End(xlUp)).ClearContents LastO = Cells(Rows.Count, "O").End(xlUp).Row Range("A3:C3").Value = Cells(LastO, "O").Resize(, 3).Value str = Range("A3").Value & Range("B3").Value & Range("C3").Value For i = 3 To LastO   If str = Cells(i, "O").Value & Cells(i, "P").Value & Cells(i, "Q").Value Then     LastG = Cells(Rows.Count, "D").End(xlUp).Row + 1     If LastG < 3 Then LastG = 3     Cells(LastG, "D").Resize(, 3).Value = Cells(i + 1, "O").Resize(, 3).Value   End If Next End Sub これにいつも格子をつけて文字がセンターになるようにしたいですがどうすればよろしいですか?解答よろしくお願いいたします。

  • VBAで行を挿入する

    VBAを始めた初心者です。 Exel2002使用です。 VBAでA列の4行目から10行目に行の挿入をできるようにしようと下記のように書きましたが、Rows("i:i").Selectの部分でデバックがかかってしまいます。間違っている理由がわからないのですがよろしくお願いします。 また、DO While Loopステートメントを使ってA列が空白になるまで(例えばA4セル以下の)行を挿入とする場合の方法も教えていただけましたら幸いです。 Sub 4行目から10行目まで() Dim i As Integer For i = 4 To 10 Cells(i, 1).Value = i Rows("i:i").Select Selection.Insert Shift:=xlDown Next i End Sub Sub 4行目から空白になるまで() Dim i As Integer Range("A4").serect Do While activecell.value = "" Cells(i, 1).Value = i Rows("i:i").Select Selection.Insert Shift:=xlDown activecell.offset(1,0).select Loop End Sub

  • マクロのフォームから。。。

    マクロのフォームから。。。 マクロのフォームからシートの最終行に入力ができるようにしたいのです。 マクロは下記になります。今の状態ですと、新規入力ボタンを押してデータ登録ボタンを押すと、途中の行に登録がされてしまいます。 暫く考えていましたがどうしてもわからず、また初心者の為できればわかりやすく教えてもらえると幸いです。どうかよろしくお願い致します。 Private Sub CommandButton3_Click() 入力結果 = MsgBox("データを登録しますか", vbYesNo) If 入力結果 = 6 Then If ToggleButton1.Value = True Then 表示行 = Cells(2, 10).Value + 1 Else 表示行 = Cells(1, 10).Value End If If ToggleButton1.Value = True Then データクリア TextBox1.Value = Cells(表示行, 1).Value + 1 Else データ表示 End If 表示行 = Cells(1, 10).Value Cells(表示行, 1).Value = TextBox1.Value Cells(表示行, 2).Value = TextBox2.Value Cells(表示行, 5).Value = TextBox3.Value Cells(表示行, 6).Value = TextBox4.Value Cells(表示行, 7).Value = TextBox5.Value Cells(表示行, 4).Value = ComboBox1.Value If OptionButton1.Value = True Then Cells(表示行, 3).Value = "男" Else Cells(表示行, 3).Value = "女" End If データ表示 End If End Sub ※ 表の範囲:a1:g5(1行目はタイトル) j1:表示行 j2:最終行(counta)

  • 複数のセルでの方法

    現在下記のようなマクロを組んであるのですが、これだと5列目が「0」のときの実行マクロです。 '5列目(工数)が「0」のとき該当する行の高さを「0」にする。 For i = ActiveSheet.UsedRange.Rows.Count To 1 Step -1 If Cells(i, 5).Value = "0" Then Rows(i).RowHeight = 0 End If Next 私はこれではなくて、5列目と7列目の同じ行にあるセルに「0」がはいっていたら行の高さを「0」にしたいのです。 そこで私は If Cells(i, 5).Value = "0" Then これを If Cells(i, 5).Value = "0" And Cells(i, 7).Value = "0" Then にしたところエラーが発生しました。 良い方法があればお教えください。 よろしくお願いします。

  • 選択した行のみマクロを使いたい

    以前、こちらのサイトで表を展開するマクロを教えていただきました。 そのマクロをシート全体ではなく、任意の行や任意のセルにだけに使えるようにしたいです。 Sub 展開() Dim nLast As Long Dim vAdata, i, j Dim vData nLast = Cells(Rows.Count, 1).End(xlUp).Row '行を追加削除する時は下から上が基本 For i = nLast To 1 Step -1 vAdata = Cells(i, 1) 'A列が空白ではなく、B列が空白の場合、B列以降を上と同じにする If (vAdata <> "") And (Cells(i, 2) = "") And (i > 1) Then Rows(i) = Rows(Cells(i, 2).End(xlUp).Row).Value Cells(i, 1) = vAdata End If If vAdata = "" Then 'A列の値が空白なら削除 Rows(i).Delete Shift:=xlUp Else 'A列の最後に「,」が有る場合は取り除く If Right(vAdata, 1) = "," Then vAdata = Left(vAdata, Len(vAdata) - 1) End If vData = Split(vAdata, ",") 'A列の値がカンマで区切られていた場合 If UBound(vData) > 0 Then '対象行をコピーして区切られていた数-1だけ下に挿入 Rows(i).Copy Rows(i & ":" & i + UBound(vData) - 1).Insert Shift:=xlDown 'A列の値を区切られていた値に書き換える For j = 0 To UBound(vData) Cells(i + j, 1) = vData(j) Next j End If End If Next i End Sub というマクロを教えて頂きました。 これをどのようにすればいいでしょうか? ご教授お願いします。

  • 【エクセルマクロ】小計下への空白行挿入

    マクロ初心者です。 日付ごとのデータがありまして、 webで検索した次のマクロを使って、 ' 1行目から処理開始(見出しなし) GYO = 1 Do While Cells(GYO, 1).Value <> "" ' 小計グループの先頭行→GYO1 GYO1 = GYO GYO = GYO + 1 ' 次の行から同じグループでない行を見つける Do While Cells(GYO, 1).Value = Cells(GYO1, 1).Value GYO = GYO + 1 Loop ' 同じグループの最終行→GYO2 GYO2 = GYO - 1 ' 小計行を挿入 Rows(GYO).Insert Cells(GYO, 2).Value = Cells(GYO1, 1).Value & "月の小計" Cells(GYO, 3).Value = " ********** " Cells(GYO, 6).FormulaR1C1 = "=SUBTOTAL(9,R" & GYO1 & "C:R" & GYO2 & "C)" Cells(GYO, 7).FormulaR1C1 = "=SUBTOTAL(9,R" & GYO1 & "C:R" & GYO2 & "C)" Cells(GYO, 8).FormulaR1C1 = "=SUBTOTAL(9,R" & GYO1 & "C:R" & GYO2 & "C)" GYO = GYO + 1 Loop ' 総合計 Cells(GYO, 2).Value = "年度合計" Cells(GYO, 3).Value = " ********** " Cells(GYO, 6).FormulaR1C1 = "=SUBTOTAL(9,R1C:R" & GYO2 & "C)" Cells(GYO, 7).FormulaR1C1 = "=SUBTOTAL(9,R1C:R" & GYO2 & "C)" Cells(GYO, 8).FormulaR1C1 = "=SUBTOTAL(9,R1C:R" & GYO2 & "C)" 次のように、小計と年度計を挿入できるのですが、 見にくいので、小計の下に1行挿入したいのです。 4/1    ○○○ ¥□□ | 4/30    ○○○ ¥□□ 4月の小計 **** ¥□□ 5/1    ○○○ ¥□□ | 5/31    ○○○ ¥□□ 5月の小計 **** ¥□□ 6/1 |  (途中省略) 4/30 4月の小計 **** ¥□□ 年度計  **** ¥□□ マクロに詳しい方、アドバイスよろしくお願いします!

専門家に質問してみよう