BOT通報マクロ解説5

さて、第5回目です。
前回は通報ページを開くところまで行きました。
そして、エクセルの表の上にボタンを作ってクリック一つで通報ページが開くようになりました。
今回は、データをエクセルから通報ページの方に入力して行きます。
(後の方でデータ入力用のボタンをもう一つ作ります。)

さて、最初に調べないといけないことと、確認しないといけないことがあるのでそれをやりましょう。

それじゃ早速【調べる】方から。
自分がBOTを通報する時はどういう手順で通報しているでしょうか?
狩場で見かけたBOTをメモ帳に保存しておいて、狩りが終わってから
後からスクリーンショットを探して、通報ページを開いて通報する。
大体こんな手順ではないでしょうか?

では、最後の『通報する』というのはどうでしょう?
いちいちメモ帳に保存された名前を見ながらタイピングしますか?
全角半角打ち間違う危険性やら、全角スペースやら半角スペースやら有りますからね。
やっぱりここは『コピペ(コピー&ペースト)』でしょう。

---
幸い、鯖キャンセル続発のおかげでBOTのテレポ間隔が少し伸びている気がします。
「右クリック→1:1ウィンドウを開く」でWIS相手履歴に名前が残るので
後からShift+Del(クリップボードに切り取り)できるのでそれをメモ帳に残しましょう。
これで全角半角面倒な漢字から解放されます。
っと話がそれました。
---

では、今回のプログラムがどういう動きをするかというと、
『エクセルから通報ページへのコピペ』です。
これが今回の作っていくものです。

目標が決まれば次に調べるのは手段です。
では、背景の説明から。
Windowsは色々なメッセージが飛び交っています。
メッセージというより信号といったほうが分かりやすいかもしれません。
例えば、

ちょっとマウスを動かしただけでもこれだけの信号が出てます。

簡単に説明しますと、上から3行目が分かりやすいですかね〜
WM_MOUSEMOVE『マウスが動きました』というものです。
その右端に『xPos』とか『yPos』とかかかれているものが座標になります。
マウスからの信号が最終的にはこう言う形になっているのです。
(WM_LBUTTONDOWNとか言うのは左ボタン押してるって事です。)

もちろんキーボードの信号もあります。
じゃ、その信号をプログラムを使って再現してあげると
『キーボード(もしくはマウス)を使ってコピペ作業をカチャカチャやらずにすむじゃあーりませんか!?』
(まめちしき:WMというのは「ウィンドウズ メッセージ」の頭文字。)

なんか今日は文字ばっかり(上の画像も文字)なので無意味にBOT画像。

伊豆4うようよ

それじゃ、作業に入ります。
今回使用する武器を挙げていきましょう。

ActiveCell.Row
アクティブセル(選択しているセル)が何行目か?という疑問に答えてくれます。

Cells(1, 1).Copy
1行目1列目のセルをクリップボードにコピーしますよ。

AppActivate ????
????のプロセスIDのアプリケーションをアクティブ状態にしますよ。

SendKeys "A", True
キーボードから『A』と入力したのと同じ事をしますよ。
カンマが付いてTrueとなっているのは入力する相手が入力できる状態まで待ちますよって事です。

ActiveCell.Offset(1, 0).Activate
アクティブセルを1行0列移動しますよ。

今回使用するのはこれだけです。

先ず通報するプログラムを書くところから作りましょう。

この画面までは『BOT通報マクロ解説2』を参照されたし

前回test1という名前で通報ページを開くプログラムを書きました。
そのときEnd Subという文字が自動的に出てきたかと思います。
今回はそのEnd Subの後ろ側で改行を一回してあげて、
『Sub 通報』と入力してEnterを押してあげると上の図のようにプログラムを書く場所が出来上がります。
(今回は『通報』という漢字を使いましたが、プログラムを書くときは半角英数字の方が後々不幸にならないです)

実際やってみないと分からないので

こんな具合にずらずらと〜

さて解説。
通報プログラムが動き出すと、
・1行目2列目のセルをクリップボードのコピーします。(ユーザーIDが書かれている場所です)
・1行目7列目のプロセスIDのアプリケーションをアクティブ状態にします。
・『^v』というキーボードの信号を入力します。(アクティブなアプリケーションに入力されます)
ここで『^v』というのは何かと言うと、『^』と言うのがCtrlの事で、『v』と言うのが文字のVの事です。
つまり、Ctrl+Vというペーストのショートカットを入力しているのと同じ事になります。
・『{tab}』というキーボードの信号を入力します。つまりタブを押したことと同じです。
その後は上と同じですね。

さて、動作はどうなるでしょうか…?(大体予想はつくとは思いますが)

test1のプログラムを動かした後に『通報』プログラムを動かしてみましょう


通報ボタンも作っておくと動作確認が楽ですよ。(作り方はBOT通報マクロ解説4を参照〜)


先にtest1を動かさないと
『このプロセスIDのアプリケーションが居ないけどどないなっとるねん!!』と言うエラーがでます。
上手く動いたでしょうか?

なんとなく気付いた方が居るかもしれませんが、
この後重要になってくるのは
・どのタイミングでどのデータをコピーして貼り付けるのか?
・タブを何回押したら次の入力必須項目に行くのか?
と言うことになります。
改めて【確認して】みましょう。

分析開始。

IDをコピーして
IDを貼り付けて
タブ
パスワードをコピーして
パスワードを貼り付けて
タブ
矢印の↓を一回押して
タブ
自分のサーバーが出てくるまで↓を押す回数をメモして
タブ
エクセルのBOT名をコピーして
BOT名を貼り付けて
タブ
タブ
タブ
エクセルから確認マップをコピーして
確認マップを貼り付けて
タブ
詳細内容をコピーして
詳細内容を貼り付けて
タブ
スクリーンショットの場所をコピーして
スクリーンショットの場所を貼り付けて
タブ
タブ

分析終了。
この動きをそのままプログラム上で順序を間違えないように書いて行きます。

殆どコピペでいけると思います。

ちなみに↓ボタンは{down}です。
複数回の時は{down 5}のようにします。間は半角スペースね。
{tab 3}とかもできます。
ちゃんと動いてくれるでしょうか?

ここで一つ注意点。
武器の中のSendkeysという奴は時々動作が不安定になるのでまともに動かないときが有ります。
なので、一回正しくコピペできなくてももう一度最初から動かしてやればちゃんと動いてくれるときが有ります。
稀に〜なので、頭の片隅に置いておくと良いでしょう。


長くなりましたが、残った武器を使っていきましょう。

赤線部分が変更&追加です。

『今のアクティブセルの行』をBOTデータをコピーするセルの行のところに持ってきています。
これによって3行目なら3行目のBOTデータがコピペされていくといった動きをします。
そして、最後にアクティブセルを一つ下に移動しています。
次のBOTデータの行に移動します〜という意味があります。

さて、ここまでで殆ど完成しました。
実際のBOTデータを叩き込んで通報してみると良いです。

次回は注意点とか、問題点とか、改良点とか色々と補足的な内容になる予定です。
山場は越しましたよー
改めてみるとやっぱり長いな…