• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:vba 編集⇒Enter 繰り返しマクロ)

VBA編集での繰り返しマクロについての質問

このQ&Aのポイント
  • VBA編集を使用して、繰り返しマクロを作成しています。詳細な操作について質問があります。
  • マクロを使用して、RSSのデータを編集し、特定の列に表示したいです。
  • キーボードショートカットやクリック操作を使いながら、繰り返しマクロを作成しています。しかし、うまく動作しません。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 すみません、一部、間違いがありました。 >走らした結果 >'"=RSS|'100" & j & ".T'!銘柄"  この書式で走らせました、結果下記の様に >'m11 -'#NAME? 中身⇒'=RSS|'1000 .T'!銘柄 >'m100 -'#NAME? 中身⇒'=RSS|'10089.T'!銘柄  (変)です。 ただ、そうなるところをみると、たぶん、RSSでつないだままで行ったものだと思います。以下のマクロの実行中は、割り込みはさせませんので、RSSのデータは表示しません。 以下で、ダメなら、一旦、RSSをはずして行うしかないと思います。 はずして行うと、通信していませんから、最初は、#REF! のエラーが出るはずです。 Sub Test1R() Dim i As Long Dim j As Long With Application   .Interactive = False   .Calculation = xlCalculationManual   .DisplayAlerts = False End With With ActiveSheet For i = 0 To 999  .Cells(i + 11, 13).Formula = "=RSS|'" & Format$(i + 1000, "0000") & ".T'!銘柄" Next i End With With Application   .DisplayAlerts = True   .Calculation = xlCalculationAutomatic   .Interactive = True End With End Sub

haro-goo
質問者

お礼

有り難うございました= 2^^ 通信 有り、無し どちらも完璧 (見た人飛びつくと思う)

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

その他の回答 (1)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 >上記 RSSを編集⇒Enter 操作を繰り返しで 各約9000行 RSSでは、9000行は、負担が多すぎて無理だと思います。 一枚のシートに収めるのではなく、分散させたほうがよいです。 それから、RSS を使ったマクロは、途中で、割り込みされるので、思ったようには動かないかもしれません。 >Sub R_z() >' R_z Macro のマクロのコード。標準モジュールに貼り付けるのがよいです。 Sub Test1() Dim i As Long Dim j As Long Application.DisplayAlerts = False With ActiveSheet For i = 11 To 100 '11行目~  j = i - 11  .Cells(i, 13).Formula = "=RSS|'100" & j & ".T'!銘柄" 'M列 Next i End With Application.DisplayAlerts = True End Sub

haro-goo
質問者

補足

Wendy02さん お世話になります。こんにちわと言いたいのですが、とうとうこんばんわになつてしまいました. 改造願い!!。 Sub Test1() Dim i As Long Dim j As Long Application.DisplayAlerts = False With ActiveSheet For i = 11 To 100 '11行目~ j = i - 11 .Cells(i, 13).Formula = "=RSS|'100" & j & ".T'!銘柄" 'M列 Next i End With Application.DisplayAlerts = True '走らした結果 '"=RSS|'100" & j & ".T'!銘柄"  この書式で走らせました、結果下記の様に 'm11 -'#NAME? 中身⇒'=RSS|'1000 .T'!銘柄 'm100 -'#NAME? 中身⇒'=RSS|'10089.T'!銘柄  (変)です。 End Sub ’-----------改造---------- Sub Test2() Range("M11").Select '-----cell位置へ Dim i As Long Dim j As Long Application.DisplayAlerts = False With ActiveSheet For i = 0 To 999   ’999は自分で変えます j = i .Cells(i + 11, 13).Formula = "=RSS|'1000+" & j & ".T'!銘柄" '-----此処にセルのカウンターメモリー表示して下さい。どこに居るかみたい。 Next i End With Application.DisplayAlerts = True '走らした結果 '"=RSS|'1000+" & j & ".T'!銘柄"  この書式で走らせました、結果下記の様に 'm11 -'#NAME? 中身⇒'=RSS|'1000+0.T'!銘柄 此処で1000+i=1000に、足し算形式にしてください。 'm1010-'#NAME? 中身⇒'=RSS|'1000+999.T'!銘柄 此処で1000+i=1999に ’自分で足し算形式に出来ないのです。 End Sub

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

関連するQ&A

  • EXCELのマクロについて

    お世話になっております。 以下のマクロを1万行分繰り返したいのですが、回数を1万回と指定する構文を 教えてください。よろしくお願いします。 Sub Macro16() ' ' Macro16 Macro ' ' Keyboard Shortcut: Ctrl+Shift+Z ' ActiveCell.Offset(1, 0).Rows("1:1").EntireRow.Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove ActiveCell.Offset(-1, 0).Range("A1:M1").Select Selection.Copy ActiveCell.Offset(1, 0).Range("A1").Select ActiveSheet.Paste ActiveCell.Offset(-1, 2).Range("A1").Select Application.CutCopyMode = False ActiveCell.FormulaR1C1 = "7/5/1905" ActiveCell.Offset(1, 0).Range("A1").Select ActiveCell.FormulaR1C1 = "7/6/1905" ActiveCell.Offset(1, -2).Range("A1").Select End Sub

  • エクセルVBAが書ける方へ

    お世話になります。 下記VBAはB19からB28までのデータをA11:12の横列に貼り付けさせる内容です。 Sub 特価() ' ' 特価 Macro ' ' Range("A11:A12").Select ActiveCell.FormulaR1C1 = "=R[8]C[1]" Range("B11:B12").Select ActiveCell.FormulaR1C1 = "=R[9]C" Range("C11:C12").Select ActiveCell.FormulaR1C1 = "=R[10]C[-1]" Range("F11:F12").Select ActiveCell.FormulaR1C1 = "=R[11]C[-4]" Range("H11:I12").Select ActiveCell.FormulaR1C1 = "=R[12]C[-6]" Range("T11:U12").Select ActiveCell.FormulaR1C1 = "=R[13]C[-18]" Range("X11:Y12").Select ActiveCell.FormulaR1C1 = "=R[14]C[-22]" Range("AD11:AE12").Select ActiveCell.FormulaR1C1 = "=R[15]C[-28]" Range("AN11:AO12").Select ActiveCell.FormulaR1C1 = "=R[16]C[-38]" Range("AW11").Select ActiveCell.FormulaR1C1 = "=R[17]C[-47]" Range("B23").Select End Sub これに下記内容を追加したいのですが教えて下さい。 ・B19からB28のデータは入力後消す。 ・貼り付けたら次に入力する時は下の行(A13:14)に貼り付ける。 ・同様にデータを消してA15:16に貼り付ける。以下、下の行に貼り付けていくようにする。 ・貼り付けたらカーソルはB19を選択した状態にする。 言葉足らずでしたら補足します。 何卒宜しくお願い致します。

  • Excell : 現在のカーソルがある行の特定の列に値を書き込むマクロ

    現在のカーソルがある行の特定の列に値を書き込むマクロの書き方を教えてください。以下は20行めのA列、B列にa, b を書き込むものですが、最初のRange("A20").Selectをカレント行に設定するコードを書けばいいのでしょうか?具体的な記述を教えてください。よろしくお願いします。 Sub Macro4() Range("A20").Select ActiveCell.FormulaR1C1 = "a" Range("B20").Select ActiveCell.FormulaR1C1 = "b" Range("C20").Select End Sub

  • マクロについて教えてください

    マクロ初心者です。 A~D列の表が少ない時100行、多い時400行あり、同じ操作を何回か繰り返すため、できればマクロで処理したいと思っています。 マクロ記録で作成したのですが、最終行が一定ではないため行数が増えると上手く作動しません。 どこを修正したらいいでしょうか。ご教示いただければ幸いです。 Sub Macro1() ' ' Macro1 Macro ' ActiveCell.FormulaR1C1 = "=SUBSTITUTE(RC[-1],""集計"","""")" Range("G2").Select Selection.AutoFill Destination:=Range("G2:G4"), Type:=xlFillDefault Range("G2:G4").Select Range("H2").Select ActiveCell.FormulaR1C1 = "=SUMIF(R2C1:R13C1,RC[-1],R2C2:R13C2)" Range("H2").Select Selection.AutoFill Destination:=Range("H2:H4"), Type:=xlFillDefault Range("H2:H4").Select Range("H5").Select ActiveCell.FormulaR1C1 = "=SUM(R[-3]C:R[-1]C)" Range("H6").Select End Sub ちなみに作成したいマクロ 1.F列にA列の「集計」を取り出して、G列にF列の「集計」文字を取り除く。 2.H列にB列「数」を計算する 3.H列の最終行に合計を出す。

  • Excel VBAについて

    以下のコードをFor Nextでまわすには どうしたらよいでしょうか? Sub sample() Range("A2").Select ActiveCell.FormulaR1C1 = "=テスト!R[1]C" Range("A3").Select ActiveCell.FormulaR1C1 = "=テスト!R[3]C" Range("A4").Select ActiveCell.FormulaR1C1 = "=テスト!R[5]C" Range("A5").Select ActiveCell.FormulaR1C1 = "=テスト!R[7]C" Range("A6").Select ActiveCell.FormulaR1C1 = "=テスト!R[9]C" Range("A7").Select ActiveCell.FormulaR1C1 = "=テスト!R[11]C" End Sub

  • VBAでエラーになってしまう

    初心者です。 RangeクラスのSelectメゾットが失敗しました。となります。 このコードは、マクロの記録を行い、そのコードをコマンドボタンのコードにコピーしたものです。 初心者なので、マクロの記録からやりました。 どうか、わかる方がいらっしゃいましたら、教えてください。 Private Sub CommandButton4_Click() Sheets("印刷ページ").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("C6").Select ←ここが黄色くなり、エラーになります。 ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("D6").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("E6").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("B8").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("C8").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("D8").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("E8").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("F8").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("B10").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("C10").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("D10").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" Range("E10").Select ActiveCell.FormulaR1C1 = "='鈴木 一郎'!R[2]C" End Sub

  • マクロの編集方法を教えて下さい。

    自分で記録したマクロを親切な方に編集してもらいました。実行スピードが格段に速くなったのですが、さらに処理したい項目が出来たので、別に記録してコピー、適切な箇所に挿入したのですが、実行時エラーが出ます。どう直していいのか分かりません。分かる方教えて下さい。 Sub Incert12() Dim wRow As Long Dim i As Integer Dim tbl(1 To 12, 1 To 1) As Integer wRow = Range("A65536").End(xlUp).Row Rows(CStr(wRow) & ":" & CStr(wRow + 11)).Insert Range(Cells(wRow + 1, "B"), Cells(wRow + 11, "B")).FormulaR1C1 = "=R[-1]C" '↑(1)これの代わりにB列を12行全て結合したい For i = 1 To 12 tbl(i, 1) = i Next i Range(Cells(wRow, "C"), Cells(wRow + 11, "C")).Value = tbl '↑(2)これに加えてA列に以下の処理も加えたい 'ActiveCell.Offset(-2, -8).Range("A1").Select 'ActiveCell.FormulaR1C1 = "=R[-1]C+1" 'ActiveCell.Select 'Selection.AutoFill Destination:=ActiveCell.Range("A1:A12"), Type:= _ ' xlFillDefault 'ActiveCell.Range("A1:A12").Select '↓(3)F列ではなく、FからK列までにしたい。 Cells(wRow + 12, "F").AutoFill Range(Cells(wRow, "F"), Cells(wRow + 12, "F")) 'これが私が作ったマクロ。(2行目に問題ありとの事) 'ActiveCell.Offset(-1, 5).Range("A1:F1").Select 'Selection.AutoFill Destination:=ActiveCell.Range("A1:F13"), Type:= _ ’ xlFillDefault 'ActiveCell.Range("A1:F13").Select Cells(wRow, 1).Select End Sub 以上(1)~(3)を直したいのです。どなたかよろしくお願い致します。

  • Excel マクロで困った

    A列 ------ B列 ------- C列 2716 ----- ------- =RSS|'2716.T'!更新時刻 2236 ----- ------- =RSS|'2236.T'!更新時刻 410 ----- ------- =RSS|'410.T'!更新時刻 9134 ----- ------- =RSS|'9134.T'!更新時刻 263 ----- ------- =RSS|'263.T'!更新時刻 手動 A列 は=RAND( ) で約 1万行 位 手動 C列 に=CONCATENATE( ) で A列 を挿入 =CONCATENATE($C$1,$C$2,$A11,$C$4,C$10) A11 の数字が全部同じになる困った マクロ C列 を完成   Range("c11").Select i = i + 11    f01: Cells(i, 3).Select     Selection.Copy     Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _     :=False, Transpose:=False      Application.CutCopyMode = False      ActiveCell.FormulaR1C1 = "=RSS|'2716.T'!更新時刻" 注    Aの2716に数字が全部同じになる困った     i = i + 1     If Cells(i, 3) <> "" Then GoTo f01     End Sub

  • 最終行を探してSUMするには?

    またまたお願いします。 シートT_日計作業にその日の注文データがあります。 金額はC列です。セルC2から始まっていきます。 金額の合計を求めるマクロを書いてますがうまくいきません。 (1) 最終行を求められたのですが、C2から最終行までの   普通、範囲設定でRange("C2:C20").select と書きますよね。   最終行は z = Range("c1").End(xlDown).Rowで求めてあります。   今回の最終行がC20の場合、Z=20 となり   範囲指定は Range("C2:C&Z").Select ????   これがうまくいきません。何か 勘違いしているのでしょか? (2) ActiveCell.FormulaR1C1 = "=SUM(わかりません)"   (1)がクリアーしたとして どう書けばよいのでしょうか? 宜しくお願いします。 Sub 日計注文編() Dim z As Long Sheets("T_日計作業").Select '最終行番号を調べる If Range("c2").Value = "" Then z = 1 Else z = Range("c1").End(xlDown).Row End If 'C2から最終行番号までの合計を求める Range("C2:C&Z").Select ActiveCell.FormulaR1C1 = "=SUM(わかりません)" ・・・・

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

    以下はセルB2.C2.D2.E2.F2をアクティブセルから右方向へ入力しています。ここでの入力とは"=" + "セルB2" というものです。一つずつ入力している為マクロが長くなります。短くシンプルなものにしたいです。ご教示お願いします。 ActiveCell.FormulaR1C1 = "=R2C2" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C3" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C4" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C5" ActiveCell.Offset(0, 1).Select ActiveCell.FormulaR1C1 = "=R2C6"

専門家に質問してみよう