• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定したセルに連続データを入力)

指定した範囲で連続データを自動入力するマクロを組みたい

mar00の回答

  • mar00
  • ベストアンサー率36% (158/430)
回答No.3

質問のコード Worksheets("Sheet1").Cells(i, 4) = iだとiは25から35まで変化していくので 25行目から始まるのは当然の結果です。 色々やりかたはあると思いますが Cells(i, 4) = iをCells(i-20, 4) = iにすればいいと思います。 一番最初は25から始まるので25-20で5行目 次に26-20で6行目と35まで続いていきます。 最後に余計なことかもしれませんが、質問のコードはD列になっているようですが。

MAX33
質問者

お礼

ありがとうございます。 なんとか、組めました。

関連するQ&A

  • セル内に連続して数字を入力するコード

    空白行に連続で数字を入れたくて次のようなコードを記述しましたが、入力できません。 sub() Dim i As Integer i = 1 Do While Cells(2 * i + 6, 1).Value = "" Cells(2 * i + 6, "1").Value = i i = i + 1 Loop end sub 対象のセルは8行1列目からでセル自体は2行1列結合されています。

  • 指定したセルにデータの書き出し

    いつもお世話になっております。 VB.net+SQLでデータベース連携しております。 SQLで抽出したデータをエクセルに書き出すプログラムを考えています。 For Each myRow In ds.Tables("Estimate").Rows Code = myRow("Code") xlSheet.Cells(3, 2).Value = Code Next myRow 上記で3行目の2列目にデータを書き出すことは出来たのですが 変数codeには複数のデータを格納していて上記のプログラムだとCells(3, 2).Value と指定しているので、はじめのデータから最後のデータまで同じセルに上書きしてしまっているようです。 これを各データを一行ずつ書き出したいのですが、上手くいきません。 For Each myRow In ds.Tables("Estimate").Rows    For i = 3 To 17 Code = myRow("Code") xlSheet.Cells(i, 2).Value = Code      i+=1    Next i Next myRow のようにセルの行指示を変数にしたのですが、変わりませんでした。 分かりますでしょうか?

  • 表の入力を自動的に改行したい

    office2007,W7 のユーザーです。 大きいエクセル表を作っております。N列M行の表のデータを入力するとき、第1列の全セルの入力を終わり、次行のデータを入力する際、アクチブセルが自動的に次行先頭セルに移るようにすることはできないでしょうか。範囲指定して反転したセルの 第1セルから始めることはできますが、表の記入を中断したのち再開すると、アクチブセルがまた第1列第1行に戻ってしまって、前回の入力の続きができません。 よろしくお願いします。

  • Excelで同一セル内に入力されているデータを他のセルに分割したい

    http://okwave.jp/qa4369634.html?ans_count_asc=20 で質問をして、何度かやりとりをさせていただいて エクセルで同一セル内に、セル内改行で1~6列ほどのデータが入力されています。 縦にデータが入力されていて、それぞれのセルにセル内改行を含み、データが入力されています。 それぞれのセル内のデータを… 例えば、A1セル内に5行入力されていたら、A2セルから入力されている行数分(ここでいうと5行)挿入し、それぞれにデータを分割して入力させたい。 かつ、B・Cセルは増えたセルにそれぞれのデータをコピーしたいと言ったら、 Sub Macro1() Dim idx, cnt As Integer Dim wkStr() As String Dim rng As Range   ActiveSheet.Copy after:=ActiveSheet   For idx = Range("A65536").End(xlUp).Row To 1 Step -1     If InStr(Cells(idx, "A"), Chr(10)) > 0 Then       wkStr = Split(Cells(idx, "A").Value, Chr(10))       Set rng = Cells(idx, "B")       For cnt = UBound(wkStr) To 0 Step -1         Cells(idx, "A").Value = wkStr(cnt)         Cells(idx, "B").Value = rng.Value         Cells(idx, "C").Value = rng.Offset(0, 1).Value         If cnt > 0 Then           Cells(idx, "A").Resize(1, 3).Insert shift:=xlDown         End If       Next cnt     End If   Next idx End Sub といったマクロのご回答をいただきました。 これを元に、 ・データが入っているセルをA列→B列に変更 ・A列のデータはセルが増えた分だけ増やしたい ・A1に対応するデータがC1・D1に入っていた場合、対応するデータは残したまま、B列が増えただけ、列を増やしたい と変更したいのですが…。 すいませんが、宜しくお願い致します。

  • VBA 検索したセルに入力

    ExcelのVBAを使用して データの入力されたファイルに行列から検索したセルに数値を入力したいのです。 例えば、名前(行)と、日付(列) 2つの条件で、セルを検索し、該当するセルに、データ(数字とか)を 入力したいのです ------------------------------------  6/1 6/2 6/3 6/4 ・・・ a b c ・ ・ ------------------------------------ 例えば、A5に名前、B5に日付、データエリアがB10:Z20の場合 =INDEX(B10:Z20,MATCH(A5,A10:A20,0),MATCH(B5,B9:Z9,0)) で、該当するセルを探すことはできたのですが、 このセルに、データを入力したいときは、 ROWやCOLUMNで、行番号、列番号を取り出して Cellsで、入力すればいいのかな?と考えていますが もっと簡単にできるのでしょうか? (FIND関数は、使ったことがなく、どうなんだろう?と) それでいいよ とか、こっちの方が簡単 とかあれば、教えてください 

  • ExcelVBAで「Cells」を使ってセルの選択範囲を指定する方法

    例えば、セル「A1」から「C5」とセル「F1」から「I4」の範囲を選択する場合、 Range("A1:C5,F1:I4").Select としますがこれを「Cells(Row,Column)」を使うやり方はどのようにすればよいのでしょうか? Range(Cells(1, 1), Cells(5, 3)).Select Range(Cells(1, 6), Cells(4, 9)).Select 上記のような二つに分けてプログラムを動かすのではなく、あくまでセル「A1」から「C5」とセル「F1」から「I4」の範囲を同時に指定する方法です。 回答よろしくお願いします。

  • 指定したセルに入力したい

    エクセルで作った表から位置を指定してセルのないようを取り出す関数は、あると思いますが、逆に表の位置を指定する行、列と内容をそれぞれ表以外の指定したセルに入力することで、表の指定されたセルに内容が入力されるようにしたいのですが、わかる方教えて下さいお願いします。

  • exelのbookまたがりでセルをコピー貼付けたい

    エクセル2010のvbaで質問です。 シンプルなデータ表から、印刷向きレイアウトにした別BOOKにセル内容を 送りたいのですが、うまくいきません。 開いてあるbookまたがりでセル値のコピーをします。送り側は連結セルです。 行、列を可変として順次ループで回すので、RANGEでなくCELLS(行、列)の指定で行いますが、 実行時エラーが出ます。(インデックスが有効範囲にありません) Sheets(OUTSHEET).Cells(行,列).Value = Sheets(INSHEET).Cells(行,列).Value ↑現在この書き方でエラーになります。うまくいく方法はないのでしょうか。 なお、手動でコピーして、送り側セルでエンター押すとできます。 でもそのマクロ記録ではセル番地指定なので、自動化にできません。 詳しい方、よろしくお願いします。

  • Excelで離れたセルに連続したデータを貼り付けたい

    セルB5「=sheet1!C7」のデータをコピーし、 セルB7「=sheet1!C8」 セルB9「=sheet1!C9」・・・ と、連続したデータを貼り付けていきたいのですが、 セルB7「=sheet1!C9」 セルB9「=sheet1!C10」・・・ と行数も2つ飛びで貼り付けになってしまいます。 毎回ひとつひとつ入力するのが大変な手間なのですが、 なんとかならないでしょうか? もうひとつ質問です。 セルB5「=sheet1!C7」のデータを セルE5「=sheet1!C36」 セルH5「=sheet1!C65」 と行番号を29ずつずらして貼り付けたいのですがこれも簡単に貼り付ける方法はないでしょうか? やっぱり毎回ひとつひとつ入力するのが大変です・・・。

  • VBAでのセル範囲指定について

    お世話になります。 私が分からないのは、VBAでのセル範囲指定なのですが、 例えば、シートにデータが有、そのデータの1行目は見出しなので 2行目からデータが入っているセルまでの範囲を指定、コピーして 隣のシートに貼付したいのですが、そのデータの入力される範囲が 毎回違います。「CurrentRegion.Select」としてしまうと、1行目 の見出しまでも範囲指定されてしますので、どうやったら良いのか どなたかお教え頂きたく宜しくお願い申し上げます。