1. はじめに
○AutoItとは
・Windows用のいにしえのプログラム言語
・GUI(画面)の自動操作を行うことができる
○用途
・パソコン構築における手作業の自動化
・設定確認などのテストの効率化
2. 構築方法
○前提となる環境
・Windows10
○必要なインストーラ
・autoit-v3-setup.exe…AutoItのパッケージ
→https://www.autoitscript.com/site/autoit/downloads/
の [AutoIt Full Installation~]
・SciTE4AutoIt3.exe…AutoItプログラム用のエディタ
→https://www.autoitscript.com/site/autoit-script-editor/downloads/
○導入の手順
①autoit-v3-setup.exeを実行し、インストールする
[Use x86 tools~]にチェックを付けて Next >をクリックする
[Edit the script]にチェックを付けて Next >をクリックする
Choose Components そのまま Next >をクリックする
Choose Install Location そのまま Installをクリックする
②SciTEAutoIt3.exeを実行し、インストールする
○SciTE日本語の文字化け回避設定
①メニューで検索してSciTEを開く

②メニューからOptions > Open User Options Fileをクリックする

③開かれた「SciTEUser.properties」に以下のコードを貼り付けて保存する
code.page=932
character.set=128

④SciTEを開きなおす
3. 使用するツールの使い方
○SciTE…左下の検索ボックスから「SciTe」で検索したらでてくると思います
・AutoItプログラム用のエディタ
・AutoItのプログラムを記述してF5で実行することができる
・[F7]キーを押下するとEXEファイルを作成できる(クリックするだけで実行できるファイルのこと)
・構文(後々出てくる)にカーソルを合わせて[F1]キーを押すとHelp画面で詳細情報を確認できる

○AutoIt Windows Info (x86)…左下の検索ボックスからAutoItで検索すると出てくると思います
・WindowsのGUI(画面)の情報を取得できるツール
・Finder Toolを調べたい場所にドラッグ&ドロップすることで
画面情報や、ボタン等の画面要素のコントロールIDや座標を見ることができる

ドラッグ&ドロップ後、
赤枠を見ると
画面の左上のタイトル名等を確認することができる

赤枠を見ると「インストール」ボタンのコントロールIDは「Button4」であると確認できる
※コントロールID…そのボタン等の識別名のようなもの

画面下部のタブビューのVisible Textタブに移動して、
赤枠を見ると、画面上のテキストを確認することができる

画面下部のタブビューのMouseタブに移動して、
赤枠を見ると、「インストール」ボタンの座標が(343,365)であると確認できる

・画面左上を座標(0,0)とした座標を取得するよう設定を変える
初期設定だと「Screen」になっていてディスプレイ全体から見た座標を取得するようになっている。画面上の相対的な座標を取得したい場合、Options > Coord Modeの「Windows」にチェックを入れる

4. AutoItプログラムのチュートリアル①
4章では、メモ帳を立ち上げ「Hello, World!」と入力するAutoItプログラムを作成します
①まずプログラムを記述するファイルを作成する
SciTEエディタを開き、C:\Temp\Scriptの下に「MakeBook」という名前で保存する
メニュー左上のFileからsaveをクリック

C:\Temp\Scriptまで移動し(ない場合は作成する)、ファイル名に「MakeBook」と入力
保存をクリックする

②次にRun構文を使ってメモ帳(EXEファイル)を起動します。
構文:Run(‘実行ファイル名’)
説明:Windowsアプリの場合、実行ファイル名のみでOK
Windowsアプリでない場合、実行ファイルまでのパスも記述する
保存したファイルに以下のコードを貼り付けて保存してください
Run('notepad.exe')

③[F5]キーを押してプログラムを実行し、メモ帳が立ち上がればOK
④次にメモ帳に、「Hello,World!」と入力する
プログラムの世界ではミリ秒の間にプログラムが実行されるので、
メモ帳が起動するまで待機しないと、入力タイミングが早すぎることがあります。
なので、以下の流れでメモ帳への入力を行います。
WinWait構文でメモ帳の画面が立ち上がるまで待機する
WinActivate構文でメモ帳の画面をアクティブ状態(入力可能な状態)にする
ControlSend構文で「Hello, World!」を入力する
構文:WinWait(‘tytle’)
説明:画面左上のタイトル名を参照して、指定のタイトル名画面が起動するまで待機する
構文:WinActivate(‘tytle’)
説明:画面左上のタイトル名を参照して、指定のタイトル名画面をアクティブ状態にする
構文:ControlSend(‘tytle’,’text’,’ControlID’,’String’,’flag’)
説明:画面上の指定箇所に文字を入力する
tytle:入力したい画面のタイトル名
text:入力したい画面上のメッセージ
(tytleと合わせて画面を絞り込みしたいときに使う)
ControlID:入力したい要素を指定したい場合
その要素のコントロールIDを指定する
String:入力したい文字
flag:0→特殊な文字でキー入力をしたい場合使う、1→そのまま入力する
(Ctrlキーを入力したい場合→^、TABキーを入力したい場合→{TAB} など
詳細は以下のサイトを参照してください
https://open-shelf.appspot.com/AutoIt3.3.6.1j/html/functions/Send.htm)
構文の詳細な使い方はSciTe上の構文の上で[F1]キーを押すとHelpを
確認できますのでそちらでも確認できます
以下のコードを、先ほどの続きに貼り付けて保存してください
WinWait('無題 - メモ帳')
WinActivate('無題 - メモ帳')
ControlSend('無題 - メモ帳','','','Hello, World!',1)

⑤[F5]キーを押してプログラムを実行し、自動で入力されるのを確認できればチュートリアル①完了です

5. AutoItプログラムのチュートリアル②
5章では、AutoItを用いて、メモ帳系フリーソフトNotepad++を自動でインストールする
EXEファイル(クリックするとプログラムが自動的に実行されるファイル)を作成してみる
Notepad++のインストーラーは、C:\Temp\Software\nppに置いてあるものとします

①まずプログラムを記述するファイルを作成します。4章と同様にSciTEエディタを開き、C:\Temp\Scriptの下に「NppInstaller」という名前で保存してください

②次にRun構文を使いNotepad++のインストーラを実行します
インストールには管理者権限がいるので
管理者権限でスクリプトを実行するよう文頭に記述します。
Run構文の復習
https://infra-beginner.moo.jp/wordpress/2023/06/30/autoit%e3%81%ae%e6%a7%8b%e6%96%87/
#RequireAdmin
説明:管理者権限でプログラムを実行するための設定文
以下のコードを貼り付けて保存してください
#RequireAdmin
Run('C:\Temp\Software\npp\npp.8.5.3.Installer.x64.exe')

③プログラムを実行してみます。以下の画面が立ち上がればokです。

④次に、インストール画面のクリック操作をAutoItプログラムに記述していきます。
3章で説明したAutoIt Windows Info (x86)を開いてください。
⑤ControlClick構文で画面の「OK」ボタンをクリックする操作を記述します。
構文:ControlClick(‘title’,’text’,’ControlID’)
説明:画面上の指定箇所をクリックする
title:クリックしたい画面のタイトル名
text:クリックしたい画面上のメッセージ
ControlID:クリックしたい画面要素のコントロールID
ControlClick構文を使うには、タイトル名のほかにクリックしたい要素のコントールIDが必要です。
そこでAutoIt WIndows Infoを用いて、コントロールIDを確認します。

⑥タイトル名「Installer Language」、OKボタンのコントロールID「Button1」であること
が分かりました。早速ControlClickコマンドを記述して実行しましょう。と言いたいのですが、
4章でも説明したようにプログラムの実行はとても短い間に行われるので、画面が開くまで
待つ必要があります。
よってWinWait、WinActivate構文を使って、画面が立ち上がるまで待機します。
以下のコードを先ほどのコードに続けて貼り付けて保存してください。
WinWait('Installer Language')
WinActivate('Installer Language')
ControlClick('Installer Language','','Button1')

⑦インストール画面を一旦閉じて、プログラムを実行してみます。
以下のような画面に進めばokです

⑧次は「次へ」ボタンをクリックする必要があるようです。
さきほどと同様にして、画面が表示されるまで待ち、
ControlClick構文を使ってコントロールIDを指定してクリックします
以下のコードを貼り付けて保存してください
WinWait('Notepad++ v8.5.3 セットアップ')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')

⑨それでは実行してみます。以下の画面が表示されたらokです。

⑩次は、「同意する」ボタンをクリックする必要があります。
ここでも画面が表示されるまで待ってから、クリック操作を行いたいところですが、
前の画面と左上のタイトル名が同じなので、今までのWinWait構文では待機できません。
そのようなときに2番目の値に、画面上のメッセージを指定することで、
画面を判別することができます
構文:WinWait(‘title’,’text’)
説明:指定したタイトル名かつ指定したメッセージが表示されている
画面が起動するまで待機する
以下のコードを先ほどの続きに貼り付けて保存してください
WinWait('Notepad++ v8.5.3 セットアップ','ライセンス条件を確認してください')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')

⑪プログラムを実行してみます。以下の用な画面が表示されればokです。

⑫同様にコードを記述していきます。以下のコードを貼り付けて保存してください。
WinWait('Notepad++ v8.5.3 セットアップ','インストール先の選択')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')

⑬実行すると以下のような画面が表示されます。

⑭ここではコンボボックスの「カスタム」を「Minimalist」にして進んでみます。
ControlCommand構文でコンボボックスのMinimalistを選択します。
念のため、sleep構文で少し待機してから「次へ」ボタンをクリックします。
構文:ControlCommand(‘title’,’text’,’ControlID’,’command’,[‘item’])
説明:画面上の指定箇所にcommandで指定した操作を行う
title:操作したい画面のタイトル名
text:操作したい画面上のメッセージ
(tytleと合わせて画面を絞り込みしたいときに使う)
ControlID:操作したい画面要素のコントロールID
command:操作内容を指定する
item:commandで指定する内容がある場合ここで指定する
指定するものがなければ省略できる
command部分の詳細については以下のサイトを参照してください
https://open-shelf.appspot.com/AutoIt3.3.6.1j/html/functions/ControlCommand.htm
ここではcommandにSelectStringを指定します
command:SelectString
説明:指定した画面要素からitemに指定したテキストを選択しアクティブ状態にする
以下のコードを貼り付けて保存してください
WinWait('Notepad++ v8.5.3 セットアップ','構成要素の選択')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlCommand('Notepad++ v8.5.3 セットアップ','','ComboBox1','SelectString','Minimalist')
sleep(300)
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')

⑮実行してみます。Minimalistが選択されて次の画面になったらokです

⑯同様にボタンをクリックして進みます。以下のコードを貼り付けて保存してください。
WinWait('Notepad++ v8.5.3 セットアップ','Create Shortcut on Desktop')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')

⑰実行するとインストールが始まり、完了画面が開かれます。

⑱ここではチェックボタンを外してから「完了」ボタンをクリックしてみます。
ControlCommand構文で「Notepad++ v6.5.3を実行」のチェックを外します。
ControlCommandのcommandにUncheckを指定します
command:Uncheck
説明:指定した画面要素のチェックを外す
以下のコードを続きから貼り付けて保存してください
WinWait('Notepad++ v8.5.3 セットアップ','セットアップの完了')
WinActivate('Notepad++ v8.5.3 セットアップ')
ControlCommand('Notepad++ v8.5.3 セットアップ','','Button4','Uncheck')
sleep(300)
ControlClick('Notepad++ v8.5.3 セットアップ','','Button2')
⑲実行する前にnotepad++をアンインストールします。
コントロールパネルを開く
→プログラムのアンインストール
→Notepad++(64bit x64)を右クリック
→アンインストールをクリック
→アンインストール画面が立ち上がったらアンインストールをクリック

「はい」をクリック

OKをクリック ※minimalist(最小版)なのでモジュールないというエラーがでる

「閉じる」をクリック

⑳プログラムの方に戻り、実行してみます。インストールが完了したらOKです。
㉑最後にAutoItプログラムのEXE化をやってみます
EXE化することでAutoItをインストールしていない端末でも使えるようになります。
SciTe上で[F7]キーを押してください。

㉒プログラムファイルがある場所に見に行くとEXEファイルが作成されています

㉓再びnotepad++をアンインストールして、EXEファイルをダブルクリックして実行してみます。
㉔インストール始まればEXEファイル作成は完了です。今回確認しませんが別PCで実行できるファイルです。チュートリアル②は終了になります。お疲れさまでした。

6. AutoItプログラムの構文
以下のサイトにまとめてみた。
7. おわりに
今回はAutoItの使い方について説明しました。しかし実際には、AutoItでできることはあまり多くないです。画像認識や操作記録などの本格的なRPAを行いたいなら、有償のRPA製品を利用した方がいいかもしれません。ただ本記事を通して、お金をかけずに日々の業務を楽にできる手段は意外とあるんだなと感じてもらえれば幸いです。

Comments