【ExcelVBA】他のアプリケーション(LINE)を起動する方法

VBAでアプリケーションを起動

 icon-check-square-o LINE

ちょっと面白そうなタイトル。
ExcelVBAでブックやファイル、Excelの操作は行ったことはあるけど、他のアプリケーションを操作したことはなかったので、今回チャレンジしてみます!

今回、起動するアプリはLINE。
日本国内でも5000万人のユーザー数を誇り、ついに今日、うちの母(70歳)までも始めました。

そのLINEをVBAで起動して、ログインするところまでやってみたいと思います。


 icon-check-square-o shell関数

便利な関数がありました。
他のアプリケーションを開くには、shell関数を使うようです。

■shell関数
書式:shell(ファイル名,ウィンドウ形式)

ウィンドウ形式というのは、アプリケーションを開いたときの大きさ?なのかな。
よくわからないので、ここでは1にしておきます。

LINEのアイコンを右クリック ⇒ プロパティ

ライン1

リンク先がファイル名になります。
なので、コードは次のようになります。

Sub line_open()
    Shell "C:\Program Files (x86)\Naver\LINE\line.exe", 1
End Sub

LINEを起動するだけなら、1行で終わってしまった(笑)
さっそく実行してみましょう。

ライン4

すると、ログイン画面が立ち上がるので、ユーザー名とパスワードを入力します。


 icon-check-square-o SendKeysステートメント

どうやらIE操作とは、また勝手が違うようです。
なのでSendKeys関数を用いて、アクティブウィンドウに対してキーボード入力を行います。

■SendKeys関数
書式:SendKeys キーボード

Trueを指定すると、キーストロークが渡るまで処理を中断してくれるようです。
よくわからないので指定することにします。

ふつうの文字列は””ダブルクォーテーションで括るだけですが、特殊なキーの場合はコードを指定する必要があるみたいです。

Sub line_open()
    Shell "C:\Program Files (x86)\Naver\LINE\line.exe", 1
        SendKeys "●●●●●●●●", True
        SendKeys "{Tab}", True
        SendKeys "●●●●●●●●", True
        SendKeys "{Enter}", True
End Sub

人によって環境が違うと思いますが、都合がいいことにLINEを立ち上げると、ユーザー名を入力する欄にカーソルが合っています。
なので、このままキーストロークを渡しにいきます。

上のコードの3行目ですね。
ここはご自分のユーザー名を記述してください。5行目も同じようにパスワードを記述してください。

ライン5

Enterボタンが押される前、5行目までの実行結果です。
まず、ユーザー名を入力して、Tabキーでパスワード欄に移動。パスワードを入力、という流れです。

ライン2

すべて実行した結果です。
無事にログインできました。

色々調べていると、SenKeysは動作が安定しないので推奨されていないようです。
でも、手操作と同じことをできるので、とても便利な関数ですね。