楽天RSSコードを取得する、株価などのリアルタイム情報を表示する

Public Const COL_CODE As String = "A"
Public Const COL_MARKET As String = "B"
Public Const COL_CATEGORY As String = "C"
Public Const COL_CATEGORY2 As String = "D"
Public Const COL_ZENDEKI As String = "E"
Public Const COL_MEDO_POS As String = "F"
Public Const COL_MEDO_MAI As String = "G"
Public Const COL_MEDO_KAI As String = "H"
Public Const COL_MEDO_URI As String = "I"
Public Const COL_NAME As String = "J"
Public Const COL_CATEGORY_NAME As String = "K"
Public Const COL_CATEGORY2_NAME As String = "L"
Public Const COL_VAL As String = "M"
Public Const COL_FST As String = "N"
Public Const COL_ZENVAL As String = "O"
Public Const COL_MIN As String = "P"
Public Const COL_MAX As String = "Q"
Public Const COL_DEKI As String = "R"
Public Const COL_MONEY As String = "S"
Public Const COL_VAL_ZENHI As String = "T"
Public Const COL_DEKI_ZENHI As String = "U"
Public Const COL_MONEY_WARI As String = "V"
Public Const COL_KASHI As String = "W"
Public Const COL_YUSHI As String = "X"
Public Const COL_SHIBAI As String = "Y"
Public Const COL_GYAKU As String = "Z"
Public Const COL_PBR As String = "AA"
Public Const COL_PER As String = "AB"

Public Const RSS_MAX_YEAR As String = "年初来高値"
Public Const RSS_MIN_YEAR As String = "年初来安値"
Public Const RSS_MAX_FST As String = "上場来高値"
Public Const RSS_MIN_FST As String = "上場来安値"
Public Const RSS_VAL As String = "現在値"
Public Const RSS_VALDAY As String = "現在日付"
Public Const RSS_VALTIME As String = "現在値時刻"
Public Const RSS_ZENVAL As String = "前日終値"
Public Const RSS_ZENDAY As String = "前日日付"
Public Const RSS_ZENHI As String = "前日比"
Public Const RSS_AYU1 As String = "歩み1"
Public Const RSS_AYU2 As String = "歩み2"
Public Const RSS_AYU3 As String = "歩み3"
Public Const RSS_AYU4 As String = "歩み4"
Public Const RSS_MAX As String = "高値"
Public Const RSS_MIN As String = "安値"
Public Const RSS_FST As String = "始値"
'Public Const RSS_END As String = "終値"
Public Const RSS_VOL As String = "出来高"
Public Const RSS_MONEY As String = "売買代金"
Public Const RSS_GYAKU As String = "逆日歩"
Public Const RSS_URIZAN As String = "信用売残"
Public Const RSS_KAIZAN As String = "信用買残"
Public Const RSS_KABTANI As String = "単位株数"
Public Const RSS_PER As String = "PER"
Public Const RSS_PBR As String = "PBR"
Public Const RSS_HAITO As String = "配当"
Public Const RSS_HAITO_OCH As String = "配当落日"
Public Const RSS_KENRI_OCH As String = "権利落日"
Public Const RSS_KASHI As String = "残高貸株"
Public Const RSS_YUSHI As String = "残高融資"
Public Const RSS_KEHAI_URI_VAL As String = "最良売気配値"
Public Const RSS_KEHAI_KAI_VAL As String = "最良買気配値"
Public Const RSS_KEHAI_URI_MNT As String = "最良売気配数量"
Public Const RSS_KEHAI_KAI_MNT As String = "最良買気配数量"
Public Const RSS_KEHAI_URI_SUM As String = "売気配数量累計"
Public Const RSS_KEHAI_KAI_SUM As String = "買気配数量累計"
Public Const RSS_TOKURI_FLG As String = "特別売気配フラグ"
Public Const RSS_TOKKAI_FLG As String = "特別買気配フラグ"

' A列に銘柄コードとB列に市場コードをシートに記入しておくと、C,D,,列の同じ行に指定した情報を取得して表示します。
Function get_rss(category As String)

    Dim ite As Long
    Dim code, mrkt As String
    Dim ret As Variant

    For ite = SHEET_OFFSET To Cells(Rows.count, COL_CODE).End(xlUp).row
    
        code = Cells(ite, COL_CODE).Value
        mrkt = Cells(ite, COL_MARKET).Value
        
        ' #で始まる行は無視する。
        ret = InStr(1, code, "#", vbBinaryCompare)
        If ret <> 0 And IsNull(ret) = False Then
        Else
            Cells(ite, COL_NAME).Value = getRss(code, mrkt, RSS_NAME)
            Cells(ite, COL_VAL).Value = getRss(code, mrkt, RSS_VAL)
            Cells(ite, COL_MAX).Value = getRss(code, mrkt, RSS_MAX)
            Cells(ite, COL_MIN).Value = getRss(code, mrkt, RSS_MIN)
            Cells(ite, COL_FST).Value = getRss(code, mrkt, RSS_FST)
            Cells(ite, COL_ZENVAL).Value = getRss(code, mrkt, RSS_ZENVAL)
            Cells(ite, COL_DEKI).Value = getRss(code, mrkt, RSS_VOL)
            Cells(ite, COL_MONEY).Value = getRss(code, mrkt, RSS_MONEY)
            'Cells(ite, COL_KABTANI).Value = getRss(code, mrkt, RSS_KABTANI)      
            Cells(ite, COL_KASHI).Value = getRss(code, mrkt, RSS_KASHI)
            Cells(ite, COL_YUSHI).Value = getRss(code, mrkt, RSS_YUSHI)
            Cells(ite, COL_GYAKU).Value = getRss(code, mrkt, RSS_GYAKU)                             
            'Cells(ite, COL_HAITO).Value = getRss(code, mrkt, RSS_HAITO)
            Cells(ite, COL_PBR).Value = getRss(code, mrkt, RSS_PBR)
            Cells(ite, COL_PER).Value = getRss(code, mrkt, RSS_PER)
        End If
    Next ite
End Function

' 数式(文字列)を取得するだけです。
Function getRss(c As Variant, m As Variant, p As String) As String
    getRss = "=RSS|'" & c & "." & m & "'!" & p
End Function