繰り返し(各行)のエクセル列移動

繰り返すごとに現在のインデックス欄に入れた変数countで1を足して、A1→B1・・・と記述する場所を変更したいのですが、どうしても同じ列の1行したにどんどん上書きされてしまいます。

“A” & (count + 1).ToString

行を移動ではなく列を移動したいのですが方法はありますか?

列の移動に関しては、
1)配列を用意して参照する
配列変数={“A”,“B,C”…}
配列変数(0) とすると"A"が得られる
2)数値から、列英字に変換するロジックをInvokeCodeなどで組み込む
Googleで変換ロジックは検索してみてください<m(__)m>

繰り返し(各行)ということは、DataTableで読み取った後の処理でしょうか?

そうであれば、行と列はそれぞれ別の概念なので、ちょっと難しいと思います。
「繰り返し(コレクションの各要素)」を使ってDataTableの列単位で処理をすることも可能ではありますが、プログラミングの知識が必要になるのであまりお勧めできません。

1 Like

お返事ありがとうございます。
1.2と試してみて、難しそうならマクロで対応したいと思います。
ありがとうございました。

1 Like

はい。ウェブのテーブルをスクレイピングしてデータテーブルに入れて、それをエクセルで出したいのですが、不要部分を除き最初の行だけ選択しようとするとなぜか横のテーブルが縦1列のデータになってしまいます。それを横に直したかったのですが、難しいようですね・・
色々試してみてからマクロでもできないか検討しようと思います。
ありがとうございます。

なにか、それはそれで何かのアクティビティを間違った使い方をしているような。。。

もし許されるのでしたら、ロボットを共有していただけませんか?

やりたいことは
・エクセルからキーワード1つとURLをひっぱる(A列キーワード B列URL)
・サイトにURLとキーワードを入れて検索→出てきたテーブルを取得(本当はヘッダー抜かした最初の1行だけほしい)
・最後まで繰り返して取得した内容をエクセルに1行ずつ貼り付ける

多分相当素人くさい作りになってると思うので、細かい事は抜きでお願いいたします・・。
順位.xaml (22.5 KB)

1)Excel アプリケーションスコープが入れ子(最初の使用の下の階層でも使用)は動きが怪しくなると言われています。これがうまく行かない原因ではないですが。。。

2)結果をデータスクレイピングしていた対象がテーブル全体なので、5行複数列をDataTabe型に保有しています。ですので列方向にもデータ展開されますね。
⇒データスクレイピングした際の第一要素指定時に、「表全体からデータを抽出しますか?」と問われたら「いいえ」にして、第二要素を指定し、その結果の先頭行を取得するのでしたら、ExtractDataTable.Rows(0).Item(0).ToStringとして、内容を文字列として、「セルに書き込み」アクティビティでシートに転記する方法もあります。

3)1つのXAMLの中で、ExtractDataTableを複数個所で使用していますが、別別の名前にした方が混乱がなくていいですね。

データスクレイピングについて、表全体を抽出しない場合
1列の縦にならぶデータになってしまうのですが、これは合っていますか?
それともデータスクレイピングの方法が間違っているのでしょうかcp0092

となると、サイト側でTableの構造を変えているのかもしれませんね。
一度表全体を取得してみて、それをEXCELにはって、どのようにデータスクレイプされているのかを確認した方がいいです。

表全体だと縦ではなく横1一列に一件ずつ記載される形式でした。
一件繰り返すごとに1行下にずれてエクセルに書き込む形にしたところ、理想の形にはなりました。

5行分データを取り込んで、最初の1行以外は次の繰り返しの時に上書きされて消されてしまうのですが・・・まぁ使うのは最初の1行だけなのでこれでよしとします。
お付き合いくださりありがとうございます。

1 Like

頑張ってくださいね!

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.