これが私のジレンマです。36 の異なるアルバムの位置を得るために、一連の 606 週間分のビルボード 200 チャートを解析する必要があります。これが私がこれまでに持っているものです...
https://docs.google.com/file/d/0B_tgNfDq0kXAakR5eHZ3bzJQVkk/edit?usp=sharing
Billboard は Web サイトを作り直したばかりなので、Excel の Web クエリは非常にきれいでクリーンなテーブルを返すようになりました。ワークシートの列 A と B に 2 つの数式を作成しました。A には関連する日付のリスト (具体的には 2001 年 8 月 18 日から今週までの毎週土曜日) があり、B は日付に基づいてチャートへのハイパーリンクを作成します。チャートの残りの部分は、シートをレビューするアドバイザーのために色分けされています。
また、2001 年 8 月 18 日の日付の最初のグラフを手動で Web クエリし、独自のワークシートにしました。このワークシートは変更されていません。まさに Web クエリが返したものです。
ご覧のとおり、テーブルは列 G にまたがり、各エントリは 3 行を占めます。私は列 C と D に注目しています。各エントリの列 D の行は、(上から順に) タイトル、アーティスト、インプリント|ラベルです。各エントリの列 C の最初の行には、その週の位置が 1 から 200 まで含まれています。出現するパターンは、4 から始まる 3 行ごと (つまり 7、10、13...) に位置とアルバムのタイトルが含まれていることです (列 C & D、それぞれ)、5 から始まる 3 番目のセルごとにアーティストが含まれます。
私が想像していることを平易な英語で説明しようとしますが、これは惨めに失敗する可能性があることをあらかじめご承知おきください.
したがって、マクロは入力として 2 つのセル (入力を受け取ることさえできますか?)、アルバム タイトル、および対応するアーティストを受け取ります。この入力は、各セルに格納されている文字列とセルの場所 (E1、C2 など) の両方をマクロに伝える必要があります。マクロは、行 3 から 608 までの列 A の各 URL をループし、URL を新しいシートにクエリします。この新しいシートをアクティブにし、4 から始まる 3 行ごとに順番にアルバム タイトル文字列を検索する必要があります。一致が見つかったら、一致するクエリ セルの 1 行下のセルをアーティスト名の文字列と比較する必要があります。両方の文字列が対応するクエリ セルの内容と一致する必要がある場合は、列 C の数字 (1 から 200 まで) と、一致するアルバム タイトルのセルと同じ行を「bb200」のセルにコピーする必要があります。クエリされた URL と検索されたアルバム タイトルに対応するシート。ループは、シーケンス内の次の URL で繰り返されるはずです。一致するものが見つからない場合 (アルバムがその週にチャートに表示されなかった場合、または BB が不安定なテーブルを返した場合)、対応するセルは空白のままにする必要があります。URL のリストがなくなると、マクロは終了します。
私の問題は 2 つあります。まず、マクロに関する私の思考プロセスは根本的に健全ですか? そして 2 番目に重要なことですが、VBA でこれをどこから書き始めればよいのか、まったく手がかりがありません。Java、C、そして最近では C++ (具体的には OpenGL) を勉強しました。私は VBA の構文と API にまったく慣れていません。率直に言って、これに取り組む時間は短すぎて、座って言語を正式に学習することはできません。この後、手短に行う予定ですが、この課題は月曜日が期限であり、それがどれほど大規模な事業になるか見当がつきませんでした。
記録のために、マクロは割り当てではありませんが、収集されるデータはそれを完了するために不可欠です。好奇心旺盛な方へ、課題は月曜日までに卒業論文の完全な草案を作成することです。このデータは、私のアドバイザーが私の執筆に含めるように指示したいくつかのグラフを作成するために使用されます。論文自体は、各アルバムの販売実績をサイトから読み取るだけですでに書かれています。
他の卒業生のほとんどが真剣に中途半端なグラフィック表現を提出しているので、あなたは私が上を行くのを手伝ってくれるでしょう. ここまで進んだ唯一の他の学生は、器具を発明し、回路図と AutoCAD 図面を提供しました。しかし、それについては脱線します。
事前に助けてくれてありがとう!!