プロが教える店舗&オフィスのセキュリティ対策術

vba 編集⇒Enter 繰り返しマクロ

 =RSS|'1000.T'!銘柄-----d列  rssの信号が不通の時は#N/A
の表示

 =RSS|'1000.T'!始値-----e列
 =RSS|'1000.T'!高値-----f列
 =RSS|'1000.T'!安値-----g列
 =RSS|'1000.T'!終値-----h列
 =RSS|'1000.T'!出来高---i列

上記 RSSを編集⇒Enter 操作を繰り返しで 各約9000行
各列は今現在の考えの予定ですが今フォームを考えている最中とvba入門開始の為 任意の列で、行11よりスタート出来る様にいていただければ !!。
Sub R_z()
' R_z Macro
'
' Keyboard Shortcut: Ctrl+z
'
  (1) ActiveCell.FormulaR1C1 = "=RSS|'1000.T'!出来高"  
  (2) Range("M12").Select  
   (1) (2) '?列  11行にカーソルを置くーーー’F2を押すーーEnterーーー12行にカーソルが移る
  (3) ActiveCell.FormulaR1C1 = "=RSS|'1001.T'!出来高"
  (4) Range("M13").Select
   (3) (4) '?列  ’F2を押すーーEnterーーー12行にカーソルが移る
ActiveCell.FormulaR1C1 = "=RSS|'1002.T'!出来高"
Range("M14").Select
  |
  |  
ActiveCell.FormulaR1C1 = "=RSS|'1003.T'!出来高"
Range("M15").Select
  ’以下繰り返し操作
 End Sub
 上記マクロはKeyboardより取り込みです

A 回答 (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
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/11/05 09:01

こんにちは。



>上記 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

この回答への補足

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

補足日時:2007/11/04 20:08
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!