[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『webクエリで』(ブルー☆)
いつもお世話になっております
少し判りにくいかもしれませんが
webクエリで情報を取得するマクロを作ったのですが
Sub テスト2()
Const csCode As String = "URL;https://umanity.jp/racedata/race_7.php?code=XXXX" Dim strURL As String
strURL = Get開催コード生成 strURL = Replace(csCode, "XXXX", strURL) Set出馬表取得 strURL
Dim 処理前シート As Worksheet Dim 処理後シート As Worksheet Dim 元データ As Range Dim ws As Worksheet Set ws = ActiveSheet Set 処理前シート = ActiveSheet Set 処理後シート = Worksheets("テスト") Set 元データ = 処理前シート.UsedRange
Function Get開催コード生成() As String
Dim Y As String '年 Dim D As String '日付 Dim c As String '回 Dim A As String '場所 Dim T As String '日目 Dim r As String 'レース番号
With ThisWorkbook.ActiveSheet Y = Format(.Range("A2").Value, "0000") D = Format(.Range("B2").Value, "0000") A = Get場所コード(.Range("C2").Value) c = Format(.Range("D2").Value, "00") T = Format(.Range("E2").Value, "00") r = Format(.Range("F2").Value, "00") End With
Get開催コード生成 = Y & D & A & c & T & r End Function 最後のRの部分の数字 例https://umanity.jp/racedata/race_7.php?code=2019042103010610の最後の10のところが指定した数値だけ増えていって取得できるようにしたいのですができますか 例えば指定した数値が3ならば https://umanity.jp/racedata/race_7.php?code=2019042103010610 https://umanity.jp/racedata/race_7.php?code=2019042103010611 https://umanity.jp/racedata/race_7.php?code=2019042103010612 みたいにできたらとおもっています なお数値の指定についてはG2でできたたらと思っています わかりにくくすいませんがよろしくおねがいします
< 使用 Excel:Excel2010、使用 OS:Windows7 >
Sub test() Dim cw As String Dim i As Long
For i = 1 To 3 cw = cw & "test" & Format(9 + i, "00") + vbLf Next i
MsgBox cw End Sub (???) 2019/04/16(火) 10:24
3回あるなら、URLを作るのも3回やらないといけないし、その結果を処理するロジックも3回繰り返すのですよ。
(???) 2019/04/16(火) 18:09
Sub テスト2()
Const csCode As String = "URL;https://umanity.jp/racedata/race_7.php?code=XXXX" Dim strURL As String
strURL = Get開催コード生成 strURL = Replace(csCode, "XXXX", strURL) Set出馬表取得 strURL
Dim 処理前シート As Worksheet Dim 処理後シート As Worksheet Dim 元データ As Range Dim ws As Worksheet Set ws = ActiveSheet Set 処理前シート = ActiveSheet Set 処理後シート = Worksheets("テスト") Set 元データ = 処理前シート.UsedRange
Dim 最終行 As Long Dim 開始行 As Long Dim r As Long Dim shp As Shape
開始行 = 元データ(1, 1).Row 最終行 = 元データ.Rows.Count + 開始行
'レース名取得 Dim レース名 As String For r = 開始行 To 最終行 If 元データ(r, 2).Value <> "" Then レース名 = 元データ(r, 2).Offset(2, 0) Exit For End If Next r '距離
Dim 距離 As String For r = 開始行 To 最終行 If 元データ(r, 2).Value <> "" Then 距離 = 元データ(r, 3).Offset(4, -1) Exit For End If Next r
'馬情報開始行取得 Dim 馬情報行 As Long For r = 開始行 To 最終行 If 元データ(r, 6) <> "" Then 馬情報行 = r + 2 Exit For End If Next r
'レース内容取得と書き出し Dim 馬名, 性齢毛色, 斤量, 調教師, 父馬名, 母馬名, 負担重量, 所属, 戦績, 収得賞金
Dim cnt As Long cnt = 1 For r = 馬情報行 To 最終行 If 元データ(r, 6) <> "" Then
cnt = cnt + 1 'カウンタ
'データ取得
性齢毛色 = 元データ(r, 6).Value 斤量 = 元データ(r, 3).Value 調教師 = 元データ(r, 4).Value 馬名 = 元データ(r, 5).Value 母馬名 = 元データ(r, 6).Value 負担重量 = 元データ(r, 7).Value 調教師 = 元データ(r, 8).Value 戦績 = 元データ(r, 10).Value 収得賞金 = 元データ(r, 11).Value 父馬名 = 元データ(r, 12).Value 母馬名 = 元データ(r, 13).Value '******************************* 'この間はご自身で考えてコードを追加してください '*******************************
'データ書き出し 処理後シート.Cells(cnt, 3) = 馬名 処理後シート.Cells(cnt, 4) = 性齢毛色 処理後シート.Cells(cnt, 5) = 負担重量 処理後シート.Cells(cnt, 6) = 調教師 処理後シート.Cells(cnt, 7) = 戦績 処理後シート.Cells(cnt, 8) = 収得賞金 処理後シート.Cells(cnt, 9) = 父馬名 処理後シート.Cells(cnt, 10) = 母馬名
'元データシート削除 '******************************* 'マクロの記録で記録されたコードを追加 '*******************************
End If Next r
Range("A15:AB222").Select Selection.ClearContents End Sub
Function Get開催コード生成() As String
Dim Y As String '年 Dim D As String '日付 Dim c As String '回 Dim A As String '場所 Dim T As String '日目 Dim r As String 'レース番号
With ThisWorkbook.ActiveSheet Y = Format(.Range("A2").Value, "0000") D = Format(.Range("B2").Value, "0000") A = Get場所コード(.Range("C2").Value) c = Format(.Range("D2").Value, "00") T = Format(.Range("E2").Value, "00") r = Format(.Range("F2").Value, "00") End With
Get開催コード生成 = Y & D & A & c & T & r End Function やりたいこととしては 取得→別シートに書き出しという流れです (ブルー☆) 2019/04/16(火) 18:16
(ブルー☆) 2019/04/22(月) 19:38
また、提示されたコードは、なんか他の人に提案されたのをそのまま張り付けただけにみえますけど、実際はちゃんと理解・修正済みなのでしょうか?
>意味がやっとわかりましたということは
>今のコードをどう改良すればいいのですか
このトピックに限れば「意味がやっとわかりました」という趣旨の発言をされている回答者さんはいらっしゃらないようにみえますけど(見落としているだけならごめんなさい)他のトピックや別の掲示板と間違えて投稿していませんか?
(もこな2) 2019/04/23(火) 09:31
注意点としては、「Get開催コード生成」というプロシジャは、今は2行目の値から文字列生成していますが、引数を追加して、ループ変数をプロシジャに渡すことで、これも r という変数をセットする際に考慮しないと文字列が変わらない、という事。 これは気づきましたか?
そして、そこまでコードを書いたのは貴方自身なので、更に直すなら、貴方自身が行わなければなりません。 質問するなら、現状はどういう風に直して、どういう現象になってしまったが、どういう出力にしたいのかを詳細に説明してください。 説明するのが面倒ならば、他人を頼らず自力解決するしかないですよ。
(???) 2019/04/23(火) 11:23
自分で書いたかのように見栄をはってもよいことありません。
わたしの場合、わかってて意地悪な回答したくなります。
ところでモーグでいただいたコードなのだから
今回もモーグで質問するの普通ですが、
やはり、抵抗ありましたか。
だから、放置しないでといったのに…
無視されましたが、ひろさんですよね。
ついで、さらに意地悪コメントです。
>わからなかったので少し考えてみます
といって、マルチポストですか?
で、回答がつないと
>いろいろ考えたのですがわかりません誰か教えていただけませんか
ですか。
(マナ) 2019/04/23(火) 19:48
マルチして、フォローせず投げっぱなしを繰り返すと、どこの回答者も答えてくれなくなりますよ。
(???) 2019/04/24(水) 15:52
であれは、解決したの一言で済まさず
(n) [マルチポストについて] [multipost]
当サイトではマルチポスト(他の掲示板に同じ内容を書くこと)は 基本的に禁止していません 「マルチポストで何であれ、自由に質問して、自由に答えて、みんなで学んで解決してゆこう」 という考え方です
[マルチポストを見つけた方]がマルチポストであることを書くのも自由
そのサイトのアドレスも書くのも自由です
少なくともそのアドレス情報は有効に使われます
回答中の方が見つけた場合その書き込みからの退散も自由です
[マルチポストで書き込んだ方]は他の掲示板で解決した内容をこのボードでも公開して、 書き込みが将来他の人の役に立つように協力してください
↑の協力くらいはしてもバチは当たらないとおもうのですが、その気は無いですかね?
(もこな2) 2019/04/26(金) 19:32
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.