
事前にIEとExcelが開いている状態で、
表示されているWEBページを全選択(Ctrl+A)→コピー(Ctrl+C)して
Excelに切り替えて、最終行の一番左A列(Ctrl+End →Ctrl+左矢印キーですか?)で
値で貼り付けするにはどうすれば良いでしょうか?
その後、IEに戻って次のページに進んで(「次の20件」というリンクテキストをクリック)して、
WEBページのコピーをExcelの最終行に値で貼り付け・・・を繰り返そうと思っています。
本当は、「次の20件」というテキストががリンク無しテキストになるまで繰り返したいのですが、
分からないので、For文で適当に100回とか繰り返そうと思っています。
一番教えて欲しいのは、
・Excel最終行のA列に値で貼り付ける方法
もし次に分かると嬉しいのは
・これ以上次のページが見つからない場所まで自動で繰り返す方法
です。
よろしくお願いいたします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>表示されているWEBページを全選択(Ctrl+A)→コピー(Ctrl+C)して
>Excelに切り替えて、最終行の一番左A列(Ctrl+End →Ctrl+左矢印キーですか?)で
>値で貼り付けするにはどうすれば良いでしょうか?
前回のご質問ではEXCELシートを「Shift+F11」で追加しながらコピーを貼り付けるという方針だったように思いますが、方針転換し一つのシートに次々とコピーを貼り付けるということのようです。
ただ、実際にやってみるとわかるのですが、WEBページをコピーすると当然テキストリンクや一部画像もコピーされますので、「形式を選択して貼り付け」から「値」は選択できません。
また、リンクを含むセルを値コピーするとリンク情報がなくなって、文字情報のみコピーされます。
ご質問者の最終意図はCSVファイルを取得することだと理解していますので、これではCSVファイルのダウンロードができないと思います。
というわけで、値コピーではなくHTMLでコピーすることとします。
EXCELにIEの画面のHTMLを貼り付けるサンプルを作成してみました。
EXCELを起動し、最小化してタスクトレイに入れた状態にしてから、UWSCを起動してください。
このサンプルの動作は、
①「教えて!goo」の「コンピュータ・テクノロジー」のカテゴリの質問一覧ページにIEでアクセスし、CTRL+AおよびCTRL+CでHTMLを取得
②EXCEL画面を表示し、最終行を探してその次の行を開始行として、HTMLを貼り付け
③IEに戻り「次の結果→」をクリック、①に戻り「次の結果→」がなくなったら終了
という動きをするものです。
従って
(1)URLを「コピー対象WEBのURL」に書き換える。
(2)「次の結果→」を「次の20件 >>」に書き換える
(3)EXCELを起動し、最小化してタスクトレイに入れた状態からスタート
とすれば、ご希望の動作になるのではないかと思いますが、EXCELとIEを組み合わせるならUWSCではなく、VBAで記述したほうがよいような気もします。
なお、以下のご要望
>「次の20件」というテキストががリンク無しテキストになるまで繰り返し
>たいのですが、
これも、対象WEBの構造が不明ですので、一応対応したつもりですが、実際動かしてみないとわかりません。
IE = CreateOLEObj("InternetExplorer.Application")
URL = "https://oshiete.goo.ne.jp/articles/qa/2012/"
IE.Visible = True
IE.Navigate (URL)
BusyWait (IE)
SLEEP(0.2)
IE2EXCEL()
flag0 = 1
While true
IF flag0 = 0 Then Break
KeyWordClick(IE,"次の結果→",Flag0)
Wend
MsgBox ("終了しました")
Procedure BusyWait(IE)
Repeat
Sleep (0.2)
until (! ie.busy) and (ie.readyState=4)
Fend
Procedure KeyWordClick(IE, KeyWord,Var Flag)
flag = 0
a_tag = IE.Document.getElementsByTagName("a")
For i=0 to GETOLEITEM(a_tag)-1
COM_ERR_IGN
If ALL_OLE_ITEM[i].innerText = KeyWord Then
flag = 1
ALL_OLE_ITEM[i].Click()
BALLOON("次ページへのリンクを見つけました。遷移します。")
BusyWait (IE)
BALLOON()
IE2EXCEL()
BREAK
EndIf
COM_ERR_RET
Next
Fend
procedure IE2EXCEL()
While true
ID0=GETID(" - Internet Explorer")
if id0>0 then break
SLEEP(0.2)
Wend
SLEEP(0.2)
CTRLWIN(ID0,MAX)
CTRLWIN(ID0,ACTIVATE)
SLEEP(0.2)
MOUSEORG(ID0)
BTN(LEFT,CLICK,84,15,300) //IEのウィンドウの上部枠をクリック(実際の画面にあわせてクリック位置を調整する)
SLEEP(0.2)
SENDSTR(0,"")
While true
IF GETSTR(0)<>"" then break
SCKEY(ID0,VK_CTRL,A,C)
SLEEP(0.2)
WEND
//buff=GETSTR(0) 本当に値コピーでよいなら頭のスラッシュ2つを削除
While true
ID1=GETID("- Excel")
if id1>0 then break
SLEEP(0.2)
Wend
SLEEP(0.2)
CTRLWIN(ID1,MAX)
CTRLWIN(ID1,ACTIVATE)
//SENDSTR(0,buff) 本当に値コピーでよいなら頭のスラッシュ2つを削除
SLEEP(0.2)
SCKEY(ID1,VK_CTRL,VK_HOME)
SLEEP(0.2)
SCKEY(ID1,VK_CTRL,VK_END)
SLEEP(0.2)
SCKEY(ID1,VK_CTRL,VK_LEFT)
SLEEP(0.2)
SCKEY(ID1,VK_DOWN)
SLEEP(0.2)
SCKEY(ID1,VK_CTRL,V)
SLEEP(0.3)
Fend
EXCELに貼り付けするのではなく、HTMLをそのまま保存する方法もありますが、当該ページのリンクの記述方法によっては取得したHTMLが正しく機能しない場合もあります。以下はC:\ログ出力というフォルダを作成しておけば、そのフォルダに上記のEXCELに貼り付ける内容をそのままページ毎にHTMLで、LOG1,html、LOG2.html・・・というように保存するスクリプトです。
(1)URLを「コピー対象WEBのURL」に書き換える。
(2)「次の結果→」を「次の20件 >>」に書き換える
(3)「C:\ログ出力\」の部分を実際に保存するフォルダ名に変更する
を実施してご利用ください。
No = 0
IE = CreateOLEObj("InternetExplorer.Application")
URL = "https://oshiete.goo.ne.jp/articles/qa/2012/"
IE.Visible = True
IE.Navigate (URL)
BusyWait (IE)
SLEEP(0.2)
No=No+1
save_html(IE,No)
flag0 = 1
While true
IF flag0 = 0 Then Break
KeyWordClick(IE,"次の結果→",Flag0,No)
Wend
MsgBox ("終了しました")
Procedure BusyWait(IE)
Repeat
Sleep (0.2)
until (! ie.busy) and (ie.readyState=4)
Fend
Procedure KeyWordClick(IE, KeyWord,Var Flag,var No)
flag = 0
a_tag = IE.Document.getElementsByTagName("a")
For i=0 to GETOLEITEM(a_tag)-1
COM_ERR_IGN
If ALL_OLE_ITEM[i].innerText = KeyWord Then
flag = 1
ALL_OLE_ITEM[i].Click()
BALLOON("次ページへのリンクを見つけました。遷移します。")
BusyWait (IE)
BALLOON()
No=No+1
save_html(IE,No)
BREAK
EndIf
COM_ERR_RET
Next
Fend
Procedure save_html(IE,No)
BaLLOON("LOG"+No+".htmlを保存中です。")
body = IEGetSrc(IE, "BODY")
body= replace(body,'//','https://')
body= replace(body,'https:https://','https://')
f_Name ="Log"+No+".html"
fid0=fopen("c:\ログ出力\"+F_Name,F_WRITE8)
FPUT(fid0,body,F_ALLTEXT)
FCLOSE(fid0)
BaLLOON()
fend
この投稿サイトでは「"」が変換されてしまうので、「'」で記述してあります。上記スクリプトの「'」は全て「"」に置換してからご利用ください。
保存されたHTMLをFireFoxやChromeで開くと正しく表示されるようですが、IEで開いたらが文字化けする場合は「エンコード」を「UTF-8」にしてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
- Excel(エクセル) VBA 特定の列に入っているテキストをコピペ 2 2023/06/14 11:24
- Windows 7 ショートカットキー 応用編 どういうの主に使いますか? 2 2022/12/28 23:46
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) Excelで画像のご担当「北山◯◯様」を 宛先の (ご担当 の次に入れるにはどうすればいいですか 3 2023/07/30 22:22
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- その他(Microsoft Office) エクセルマクロ オートフィルターでで選択コピー 2 2022/04/18 11:05
- Excel(エクセル) ログインIDの一発入力? 5 2023/07/07 12:30
このQ&Aを見た人はこんなQ&Aも見ています
-
好きな人を振り向かせるためにしたこと
大好きな人と会話のきっかけを少しでも作りたい、意識してもらいたい…! 振り向かせるためにどんなことをしたことがありますか?
-
何回やってもうまくいかないことは?
みなさんには、何回やってもうまくいかないことはありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
(UWSC)エクセルのセルの値を読み込むには?
その他(プログラミング・Web制作)
-
【UWSC】エクセルのセルの値をブラウザに貼り付ける操作。セルの値の判別方法について。
その他(プログラミング・Web制作)
-
uwscでExcelに自動記入
Flash
-
-
4
【UWSC】WEBページ中の特定文字リンクをクリックする動作を自動化したい
その他(プログラミング・Web制作)
-
5
UWSCの待機コマンドについて
その他(ソフトウェア)
-
6
UWSCでテキストファイルを開いて表示したい
その他(プログラミング・Web制作)
-
7
【UWSC】HTML内のある部分を抽出したいのですが・・・
その他(プログラミング・Web制作)
-
8
UWSCで値のみコピーするには?
Visual Basic(VBA)
-
9
UWSCで変数をキー入力
その他(プログラミング・Web制作)
-
10
UWSC 非アクティブウィンドウへのキー入力
その他(ソフトウェア)
-
11
UWSCでhtmlソースの文字列を取得したいです
その他(プログラミング・Web制作)
-
12
UWSCで特定のChromeのタブをアクティブにする方法
その他(プログラミング・Web制作)
-
13
uwsc webページ内のテキストボックス
その他(プログラミング・Web制作)
-
14
UWSCを使用して、ドロップダウンリストを操作
フリーソフト
-
15
UWSC すごく初歩的な質問で申し訳ないのですが・・・
その他(プログラミング・Web制作)
-
16
UWSCの画像認識と条件分岐について(初心者で独学で作ってるもので助けてください)
その他(プログラミング・Web制作)
-
17
UWSC DeleteFile関数についての質問です。
Visual Basic(VBA)
-
18
UWSCに詳しい方簡単なテキスト入力方法を教えてください
その他(プログラミング・Web制作)
-
19
UWSC 指定ファイルを指定のプログラムで開く
フリーソフト
-
20
UWSCについて
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
マウントしたディスクにcpで、...
-
DataTableに入っているデータを...
-
ブラウザからコピペすると文字...
-
C++言語で、構造体のコピーは可...
-
ROBOCOPYをスペース付きのフォ...
-
Ctrl + Cなど複数の入力キー...
-
Activesheet.Pasteで困っています
-
arduino unoからデータを読み出...
-
Excelでコピーしたセル(テキス...
-
Eclipseのコード入力時の、行コ...
-
Listviewに表示された文字のコ...
-
一行おきに貼り付ける 可能でし...
-
Excel-VBA でSheet1という記述...
-
CStringArray[2]のコピー
-
VBA 最終行・最終列コピー範囲...
-
バッチで当日日付で作成される...
-
【UWSC】WEBページ内コピーした...
-
Debug版とRelease版で結果が変わる
-
jakarta poiを使用し、EXCELの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access VBAから使用したExcelプ...
-
C++言語で、構造体のコピーは可...
-
マウントしたディスクにcpで、...
-
Ctrl + Cなど複数の入力キー...
-
一行おきに貼り付ける 可能でし...
-
Activesheet.Pasteで困っています
-
文字列の切り出し
-
DataTableに入っているデータを...
-
arduino unoからデータを読み出...
-
バッチで当日日付で作成される...
-
Listviewに表示された文字のコ...
-
Eclipseのコード入力時の、行コ...
-
ROBOCOPYをスペース付きのフォ...
-
他プロジェクトのFormを自プロ...
-
シートに張り付けたボタンがシ...
-
jakarta poiを使用し、EXCELの...
-
【UWSC】WEBページ内コピーした...
-
Excelでコピーしたセル(テキス...
-
エクセルVBA 実行時エラー'...
-
Eclipseでコピーするとき行数な...
おすすめ情報