web-dev-qa-db-ja.com

セル値を使用してWebからデータを取得し、そこから取得するURLを組み立てる方法は?セル参照を使用してWebからデータを取得する

セル値を使用してWebからデータを取得し、そこから取得するURLを組み立てる方法は?

How to get data from web using Cell values to assemble URL to pull from?

セル参照を使用して、ExcelがWebからデータを取得するために使用できるURLを組み立てるにはどうすればよいですか?基本的に、セル値を使用してクエリ文字列を含む完全なURLをアセンブルし、クエリ結果を別のセルに返そうとしています。

1つの列にAPIURLがあり、次の列にクエリ文字列があるワークシートがあります。セル$ B $ 2(URL)とセル$ C $ 2(クエリ文字列)を使用して、= $ B $ 2&$ C $ 2からURLの結果を取得したいと思います。

ほとんどの結果は単なる数値であり、解釈する必要はありませんが、他の結果はJSONの結果に類似しており、目的の結果の正しい位置にナビゲート/バーンダウンする必要があります。

ExcelでWebからデータを取得することは、URLをネイティブに指定すると、これをうまく処理します...しかし..問題は、Excelでその機能を使用しようとしているのではなく、入力する代わりにセル参照からURLをアセンブルすることです。 Webフォームからデータを取得するURL。

何か案は?ありがとうございました

編集:
Excelを教えていた私の古い教授の1人に連絡したところ、彼は確信が持てないと言ったが、VBAスクリプトがオプションになる可能性があると提案した。

1
Rocket Spaceman

私が理解している限り、各行のデータURLは異なる/一意であるため、各行のクエリテーブルを作成する必要があります。または、単一のクエリテーブルを使用して、すべての行を反復処理し、各反復でテーブルの接続URLを更新し、次のようなVBAスニペットを使用してフェッチされたデータを適切な行に取得することもできます(免責事項:これはテストされていません) )::

' assuming your data starts at row 2
i = 2
Do While Not IsEmpty(Sheet1.Cells(i, 2))
    url = "TEXT;" & Sheet1.Cells(i, 2) & Sheet1.Cells(i, 3)
    With Sheet1.QueryTables
        If .Count < 1 Then
            .Add url, Sheet1.Range("Z1")
        Else
            .Item(1).Connection = url
        .Item(1).Refresh
        ' assuming column D would hold the results
        Sheet1.Cells(i, 4) = Sheet1.Range("Z1")
        ' do any further manipulations of the fetched Sheet1
    End With
    i = i + 1
Loop
1
Janaka Bandara