Windows11で動作可能なUWSCは環境設定がPythonに比べて楽!
AccessやExcelVBAなどBASIC言語や昔、COBOLでプログラムを組んでいた人、Microsoft Officeツールを業務でよく使っている人、RDB型のデータベースを使ってきた人にとっては、
Web上からデータを自動的に抜きさえすれば、後は既存の習得スキルでなんとかできる。
特にVBA資産やその知識がある人にとってはUWSCは今も最強のツールである。

2025.3.6時点でWindows11環境で問題なく動作している【UWSC】
Windows11でもWin10に引き続きJRAホームページからの「データ収集」+加工が成功しているように、まだまだ使えるソフトであることは既に当ブログで証明済!
- Windowsでの環境構築が他よりも圧倒的に簡単
- パソコン①でインストールした【UWSC】フォルダー毎、パソコン②へコピー動作可能
- テキスト収集ならChromeも新Edgeも操作可能
- ファイルサイズが小さい(5M程度)
- 各パソコンからの起動のため、Web上の基本操作でデータ取集しサーバーへの負荷は通常の操作とほぼ変わらない
- ExcelVBAマクロとの文法上の相性がどちらもBasic言語なので大きく逸れることがなく「命令」が同一的に覚えやすいVBAの財産があるほど【UWSC】活用の方が簡単に目的を達成しやすい
- 既にサポートがないので、新しい技術には使えない!
Pythonを使った方が良いかな?と思うところ
- LinuxOSでも使える
- バックグラウンド処理がUWSCよりもやりやすい
- ビッグデータを使ったAI分析など次のステップへ移行しやすい
- 世界標準になる勢いの言語だけに、これからのプログラミング需要が期待できる
- プログラマーとしての価値は高くなる言語と考える
私がまだ【UWSC】に傾注している理由
- MicrosoftがChromium化したことで、再度使えるようになったこと
- ブラウザーの選択肢が1つから2つになった
- ①Chrome,②MS-Edge
- UWSC構文はBasic的で、ExcelVBA同様に自動記録機能がある
- VBAの知識があれば、その延長線で習得できる
- 既にあるExcelVBAとAccessVBAの個人資産を継続利用できる
- 一からシステムを組む必要がない
- 今のところスクレイピングで拾うのは「テキスト」のみ
- 個人的なシステム構築のゴールがAccess[.accdb]+SQL-Server(Express)
- Excelメイン+Googleスプレッドシート補足が機能している
- WindowsユーザーがLinuxOSやGoogle環境だけでシステム環境を整えるのは、スキルアップとカネが更に必要!
- Windows(スタンドアロン)+Google(Web)
- OneDrive+Googleドライブ
- Googleを補助的な使い方をする方が得策
- 今の知識のまま、段階的に運用しながらシステム構築が可能
- Excelが得意なところはExcelVBA(テキスト収集)
- テキストコピペだけ【UWSC】…今
- 【UWSC】が使えなくなった時、テキストコピペだけ他のツールを探せば良い!
- 最終ゴールは、システム構築ではなく「データ分析」の活用と「時間運用」
- 馬券を当てたい!
- ブログネタを集めたい!
- 一人で多重行動化し時間獲得!
例:自作競馬データベースのスクレイピング作業の移行手順
- 手動でWebをExcelシートにコピペ → 【UWSC】でスクレイピング
- Excelでデータ加工をし表形式に整列
- 手動で表データをMS-Accessを利用してSQL-Server(EXPRESS)に投入
- MS-Access操作はマクロでワンクリックで自動化
2~4というシステムを先に作っておき、1.手動・・・をUWSCで自動化したところまで完成している。これを更に完全自動で動かす!?。。。その必要はないな~と感じている。
※2022.5.9追記分~ここまで
adono以下は2020.1.13記事作成時のモノ
2019.12.28(土)第36回 ホープフルステークスGⅠを表示してみる
サンプルには、JRAレース結果を使用する。
出走表は、当週しか表示できないので今回のブログ説明のサンプルとしては、これからも閲覧可能な「レース結果」を使うことにする。
①手動で操作:2019.12.28 ホープフルステークス
JRAのホームページ>レース結果>過去レース結果検索>開催年選択「2019」>開催月選択「12」検索>中山 ホープフルステークスGⅠ
②Chrome+UWSCで表示:2019.12.28 ホープフルステークス
- CPU i7-6500U
- CPU i3-330m
※スペックが大きく違うCPUで両方ともに動作するのを確認した。
※ご利用の際はUWSCの緊急停止は少なくともできるようになってから利用すること。
デフォルトなら
『 ALT + F2 』で強制停止!
※プログラムの二次利用は自己責任で行うこと。
画面操作のCTRL+Fを利用する。
CLKITEMというUWSCの命令がある。IEでは動作するが、Chromeでは動かない。
そこで通常のキーボード操作と同じでChrome上でテキストを「CTRL+V」でコピペする方法で
アイテムをクリックする方法で目的のページに辿り着く方法を取っている。
Pythonのスクレイピングに比べてかなり遅い処理になり大量のページを素早く取り込むことはできないが、手動と同じ操作のため動きの制御は「キーボード操作」をそのまま自動化するだけなので簡単で処理が分かり易い。
//コンピュータ名を取得する
DIM WshShell = CREATEOLEOBJ("WScript.Shell")
comname= trim(WshShell.ExpandEnvironmentStrings("%COMPUTERNAME%"))
//print "COMPUTERNAME:" + comname
//jraのホームページを立ち上げる
//TEST中はCloseしない
//CTRLWIN(GETID("chrome"),close)
exec("cmd /c start=http://www.jra.go.jp/sitemap/")
sleep(1)
ID=GETID("サイトマップ","chrome")
sleep(0.5)
CTRLWIN(ID,ACTIVATE)
sleep(0.5)
ret=STATUS(ID, ST_ACTIVE)
ifb !ret then
print "「サイトマップ」ではありません"
print ID
sleep(5)
exit
endif
//サイトマップから 文字列検索し「レース結果」をクリック
sleep(1)
SENDSTR(0, "レース結果") //クリップボードに文字を送る
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_F,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_F,UP)
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_V,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_V,UP)
sleep(0.5)
KBD(VK_ESC,CLICK)
sleep(0.5)
KBD(VK_RETURN,CLICK)
sleep(1)
ID=GETID("レース結果 開催選択","chrome")
sleep(0.5)
CTRLWIN(ID,ACTIVATE)
sleep(0.5)
ret=STATUS(ID, ST_ACTIVE)
ifb !ret then
print "「レース結果 開催選択」ではありません"
print ID
sleep(5)
exit
endif
//レース結果 開催選択から 文字列検索し「過去レース結果検索」をクリック
sleep(1)
SENDSTR(0, "過去レース結果検索") //クリップボードに文字を送る
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_F,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_F,UP)
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_V,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_V,UP)
sleep(0.5)
KBD(VK_ESC,CLICK)
sleep(0.5)
KBD(VK_RETURN,CLICK)
sleep(1)
ID=GETID("過去レース結果検索","chrome")
sleep(0.5)
CTRLWIN(ID,ACTIVATE)
sleep(0.5)
ret=STATUS(ID, ST_ACTIVE)
ifb !ret then
print "「過去レース結果検索」ではありません"
print ID
sleep(5)
exit
endif
sleep(1)
//過去レース結果検索から 文字列検索し「開催年月」を選択
sleep(1)
SENDSTR(0, "開催年月") //クリップボードに文字を送る
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_F,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_F,UP)
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_V,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_V,UP)
sleep(0.5)
KBD(VK_ESC,CLICK)
sleep(0.5)
KBD(VK_TAB,CLICK)
sleep(0.5)
KBD(VK_2,CLICK)
KBD(VK_0,CLICK)
KBD(VK_1,CLICK)
KBD(VK_9,CLICK)
KBD(VK_TAB,CLICK)
sleep(0.5)
KBD(VK_1,CLICK)
KBD(VK_2,CLICK)
KBD(VK_TAB,CLICK)
KBD(VK_RETURN,CLICK)
sleep(1)
ID=GETID("過去レース結果検索","chrome")
sleep(0.5)
CTRLWIN(ID,ACTIVATE)
sleep(0.5)
ret=STATUS(ID, ST_ACTIVE)
ifb !ret then
print "「過去レース結果検索」ではありません"
print ID
sleep(5)
exit
endif
//過去レース結果検索から 文字列検索し「ホープフルステークス」をクリック
sleep(1)
SENDSTR(0, "ホープフルステークス") //クリップボードに文字を送る
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_F,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_F,UP)
sleep(0.5)
KBD(VK_CTRL,DOWN)
KBD(VK_V,DOWN)
sleep(0.5)
KBD(VK_CTRL,UP)
KBD(VK_V,UP)
sleep(0.5)
KBD(VK_ESC,CLICK)
sleep(0.5)
KBD(VK_RETURN,CLICK)
sleep(1)
ID=GETID("レース結果","chrome")
sleep(0.5)
CTRLWIN(ID,ACTIVATE)
sleep(0.5)
ret=STATUS(ID, ST_ACTIVE)
ifb !ret then
print "「レース結果」ではありません"
print ID
sleep(5)
exit
endif
sleep(1)Sleepの数や秒数は自分のパソコン環境に合わせて変化させることにより快適にすることができる。
上記コンピューター名の取得は今回のホームページ表示とは直接関係ないが、参考として載せている。
※プログラムの是非や内容についての質問にはお答え致しません。
Windowsマクロテクニック: 超速!!(UWSCの使い方)
- マクロの基礎知識
- 実践!サンプルマクロ集
- UWSCで使える関数や制御文
- 他のアプリケーションの高度な制御方法
- マクロをもっと使いこなそう
- あとがき
- 付録
- 索引
※UWSCの書籍として今も購入可能なモノは2種のみなので、その点を考慮すると★5になるが運よく中古があれば500円以下で購入可能!
Amazonレビューは★3.9
Windowsを自動化!UWSC逆引き本 Kindle版
- はじめに
- UWSCについて
- UWSCスクリプトをつくる
- 文字を操作する
- 配列を操作する
- ファイルを操作する
- ウィンドウを操作する
- システムを制御する
- ブラウザを操作する
- Officeスイートを操作する
- 高度な操作
※Kindle販売なので在庫がなくなることはない?
UWSCの読み物として暇なときに見るようにしている
Amazonレビューは★3.9
③Chrome+Pythonで表示:2019.12.28 ホープフルステークス
- CPU i3-330m (テスト用のノートパソコンで実行)
VSCodeからデバッグ後実行でインスタンス表示し10秒後にCloseする。
UWSCと同様の動きにしている。
私もPythonは勉強中なので、一行一行ググって調べてテストしての繰り返しをひたすら行っている。今回も継ぎ接ぎながら、なんとか目的のページまで到達することができた。
#selenium準備
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.action_chains import ActionChains
from time import sleep
#Chromeを起動
driver = webdriver.Chrome('C:\chromedriver_win32\chromedriver')
#指定したURL表示
driver.get("http://www.jra.go.jp/sitemap/")
#リンクテキスト名=対象リンク要素を取得
element = driver.find_element_by_link_text("レース結果")
#Controlキーを押しながら"レース結果"のリンクをクリック
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL)
actions.click(element)
actions.key_up(Keys.CONTROL)
actions.perform()
sleep(3)
element = driver.find_element_by_link_text("過去レース結果検索")
#Controlキーを押しながら"レース結果"のリンクをクリック
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL)
actions.click(element)
actions.key_up(Keys.CONTROL)
actions.perform()
sleep(3)
# 年のエレメントを取得する
element = driver.find_element_by_id('kaisaiY_list')
# 取得したエレメントをSelectタグに対応したエレメントに変化させる
select_element = Select(element)
# 選択したいvalueを指定する
select_element.select_by_value('2019')
# 月のエレメントを取得する
element = driver.find_element_by_id('kaisaiM_list')
select_element = Select(element)
select_element.select_by_value('12')
element = driver.find_element_by_link_text("検索")
#Controlキーを押しながら"レース結果"のリンクをクリック
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL)
actions.click(element)
actions.key_up(Keys.CONTROL)
actions.perform()
sleep(3)
element = driver.find_element_by_link_text("ホープフルステークス")
#Controlキーを押しながら"レース結果"のリンクをクリック
actions = ActionChains(driver)
actions.key_down(Keys.CONTROL)
actions.click(element)
actions.key_up(Keys.CONTROL)
actions.perform()
sleep(3)
#10秒表示して閉じる
sleep(7)
#インスタンスウインドウを閉じる
driver.close()
※プログラムの是非や内容についての質問にはお答え致しません。
現場ですぐに使える! 最新Pythonプログラミング逆引き大全450の極意
現場ですぐに使える! 最新Pythonプログラミング逆引き大全450の極意
- Pythonの概要
- 基本プログラミング
- 文字列と日付の操作
- ファイルの操作と管理
- デバッグ
- Excelシートの操作
- Wordドキュメント
- インターネットアクセス
- 自然言語処理
- GUI
- NumPy、Pandas、scilit-learn
- Pythonでディープラーニング
- Matplotlibによるデータの視覚化
- GitとGitHub
- AnacondaのインストールとJupyter Notebook、Spyderの使い方
- 索引
※私が持っているのは「313の極意」
9.以降~多少内容に違いがあるようだ
Amazonレビューは★4
2025年Ai時代のプログラミングを次年度に予算化→成功Flag
私は自分の趣味として、自作競馬DBを作成しているので自然とプログラミングは必要になるのだが、自分の為のプログラミングとなると、完全自動でない方が汎用的に使えて効率的になることが多い。どこまでを自動化して、どこまでを手動にするか?はコレはもう試用しまくって、仕様を都度変化させていくしかない!
例えば、競馬で出走馬は通常、前日の11時ぐらいにJRAホームページで発表されるが、結果データと違い過去の出走馬情報は次週の水曜日までしか表示されない。これを自動化したい当初は考えていたが、案外拾い損ねることがある。
勿論その対策として、
- 結果データから出走馬データを作成したりだとか。。。
- Google Apps Scriptを併用して、裏で自動化したり。。。
- Linuxを勉強してNASでの運用をPythonで書いてみたり。。。
と、まぁ色々と考えたり試行したりもするが、大まかに動き出してくると、余程そのツールやプログラミング言語を日常的に使っていないと、バグ対応やシステム変更の対処に時間が大幅に掛かってしまう訳だ。
そこで私の場合、
JRAの有償ソフト「JRA-VAN」はWindowsベースで他のOSやWebでの提供はなさそうなので、Windows上で軽快に動くソフトで自分のスキルを考えると金が掛からないという予想で
ツールの中心はVBAになるのかな~
分析はAccessとExcelかな~
データ収集は、UWSC , PAD あたりかな~
起動スケジュールは24時間電源入れッパでUWSCスケジュール設定で出来そうかな~
データ管理は、データベースを導入して一元管理AccessとSQL-Expressで安価にできそうだな~
と、Microsoft Officeソフト+ UWSC +SQL-Server(Express)でいけるかな~という予測はつけた。
つまり、基盤は自分がある程度組めるツール&プログラム言語で固め、それ以外の分野(例えば統計分析や予測なで)は①自分が時間をかけて勉強するのか?②今までの手動で独学で行くのか?をやりながら決めれば良い!と思い動き出したわけだ。
Aiの登場により、①自分で時間をかけて勉強しなくても…②手動で独学でも言語化…
+αの分野にAi(無料)を使うことで、逆に基盤のシステムや今までの手動での独学をノートに書きなぐるだけだったモノが「情報として有効になり始めてきた手応え」があるかな!?という当初考えていなかった効果が出始めてきたのである。
今のところ私はAiそのものには金を掛けていないが、2026年の施策として「Aiの予算化」までいけば今年は大成功となるが、果たしてどうなるかな~(-_-)/~~~ピシー!ピシー!
それでは、またね~😎



