UWSC を Autoitに変換 (2):Excelで会社名順に並び替える

UWSCをAutoitに2

UWSCが閉鎖されたようなので、スクリプトをAutoitに書き換えたいと思います。
Autoitは海外では有名なBasic似たスクリプト言語です。画像認識も得意だしGUIも簡単に作れます。

本家サイト: 英語です

参考サイト: 変換するコードこちらから拾いました。

Autoit 他の記事:

UWSC : WebサイトのデータをExcelで会社名順に並び替える(No11)

コード説明:Web上のデータをクリップボードにコピーしExcelに貼り付け、Excelデータを整形しA列に会社名すべて並べ、最後にソートします。

動かなかったので、少し修正しました。

//SAMPLE11:WebサイトのデータをExcelで会社名順に並び替える
//http://class.2kki.com/uwsc/#sample11

IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = True
IE.navigate("http://class.2kki.com/uwsc/020.html")

//開くの待つ
REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4
//クリップボードに全て送る
SENDSTR(0, IE.document.body.innerHTML)
EXCEL = CREATEOLEOBJ("Excel.Application")
EXCEL.visible = True
EXCEL.workbooks.Add
EXCEL.Range("A1").Select
EXCEL.ActiveSheet.Paste
//いらない部分消す
EXCEL.Columns("A:D").Select
EXCEL.Selection.Delete
EXCEL.Rows("1").Select
EXCEL.Selection.Delete
//会社名をA列たてに並べる(1)
EXCEL.Range("C1:H99").Select
EXCEL.Selection.Cut
EXCEL.Range("A100").Select
EXCEL.ActiveSheet.Paste
//(2)
EXCEL.Range("C100:F198").Select
EXCEL.Selection.Cut
EXCEL.Range("A199").Select
EXCEL.ActiveSheet.Paste
//(3)
EXCEL.Range("C199:D297").Select
EXCEL.Selection.Cut
EXCEL.Range("A298").Select
EXCEL.ActiveSheet.Paste
//AB列選択
EXCEL.Columns("A:B").Select
// Alt→A→S→A	並べ替え(Data Sort) 
//キー変更  IDの名前変更-----------------------
SCKEY(GETID("Book1 - Excel"), VK_ALT, VK_A, VK_S,VK_A)
IE.QUIT

Autoitに変換

(1)変数の前に$をつける(Autoitの変数は$で始まります)
(2)コメント行は//から;に変える、正規表現で検索置き換えが楽です。検索置き換え

(3)IEでURL開く、3行は一行に

IE = CREATEOLEOBJ(“InternetExplorer.Application”)
IE.visible = True
IE.navigate(“http://class.2kki.com/uwsc/020.html”)

*********

;先頭に

#include <IE.au3>
$IE = _IECreate(“http://class.2kki.com/uwsc/020.html”) ;IE でURL開く

(4)URL開くまで待つ

REPEAT
SLEEP(0.1)
UNTIL !IE.BUSY AND IE.READYSTATE = 4

***************

_IELoadWait($IE);IE load待つ

(5)クリップボードにデータ入れる

SENDSTR(0, “文字列”)

******************

ClipPut(“文字列”)

(6)Excel開く

CREATEOLEOBJ(“Excel.Application”)
******************
ObjCreate(“Excel.Application”)

(7)キーを送る

SCKEY(GETID(“Book1 – Excel”), VK_ALT, VK_A, VK_S,VK_A)
*****************************
Send(“!a”)
Send(“s”)
Send(“a”)
以上
;SAMPLE11:WebサイトのデータをExcelで会社名順に並び替える
;http://class.2kki.com/uwsc/#sample11

#include <IE.au3>

$oIE = _IECreate("http://class.2kki.com/uwsc/020.html") ;IE でURL開く

;開くの待つ
_IELoadWait($oIE);IE load待つ

;クリップボードに全て送る
ClipPut($oIE.document.body.innerHTML)
$oExcel = ObjCreate("Excel.Application")
$oExcel.visible = True
$oExcel.workbooks.Add
$oExcel.Range("A1").Select
$oExcel.ActiveSheet.Paste
;いらない部分消す
$oExcel.Columns("A:D").Select   ;ooo
$oExcel.Selection.Delete
$oExcel.Rows("1").Select
$oExcel.Selection.Delete
;会社名をA列たてに並べる(1)
$oExcel.Range("C1:H99").Select
$oExcel.Selection.Cut
$oExcel.Range("A100").Select
$oExcel.ActiveSheet.Paste
;(2)
$oExcel.Range("C100:F198").Select
$oExcel.Selection.Cut
$oExcel.Range("A199").Select
$oExcel.ActiveSheet.Paste
;(3)
$oExcel.Range("C199:D297").Select
$oExcel.Selection.Cut
$oExcel.Range("A298").Select
$oExcel.ActiveSheet.Paste
;AB列選択
$oExcel.Columns("A:B").Select
; Alt→A→S→A	並べ替え(Data Sort) 
;キー変更  IDの名前変更-----------------------
Send("!a")
Send("s")
Send("a")
$oIE.QUIT

 

実行してる動画(あっという間に終わります)

スタートはショートカットキーのダブルクリックです。

コメント

タイトルとURLをコピーしました