【Excel VBA】リアルタイムに座標を表示させる

投稿者: | 2020年9月17日
excelアイコン

バージョン:マイクロソフト365

 

座標を取得したくなる時ってありませんか?

そんな時便利な方法があるのでご紹介したいと思います。

 

【完成後】

excelVBA座標

シートの左下にも表示させたい場合

シートの左下にステータスバーを表示 StatusBar

座標とは

座標とは点の位置を表すのに使ういくつかの数の組。平面上では、直角に交わる二直線と点との距離と点の位置による正負の符号を考えた直交座標が使われます。

簡単に説明すると左上が基点としてx軸が横、y軸が縦に進んだ数値です。その数値を利用してクリックの場所を指定したりします。

 

 

使用箇所

例えばYOUTUBEなどの動画などでいつも同じ場所で見たい(歌を覚える時や英語の発音の練習など100回でも200回でもお好きなだけ)時など、クリックする場所(点)の数値を利用して毎回同じ場所をクリックさせたりすることができます。

その他ルーティン作業で毎回同じ場所をクリックすることがわかっていたならば、あらかじめ座標の数値を取得しといてクリックやsendkeyなどと併用して利用したりすることが可能になります。

覚えたらかなり便利な機能なので重宝できる機能の一つになると思います。

 

【エクセルVBA】YouTube動画を一定間隔で繰り返し再生(API)

 

解説

今回作成するものはただ単にマウスを動かしたら座標の数値が自動でA1セルにリアルタイムで表示するというものです。

 

ソースコードの記述は

シートモジュール

標準モジュール

2つです。

 

 

シートモジュール

実行するシートモジュールに記述します。

シートにはさまざまなイベントがありますが今回その説明は割愛します。

今回はChangeイベントを利用してセルB1の値が変わったら処理が実行されるようにします。

 

 

標準モジュール

標準モジュールに処理内容を記述します。

①WindowsAPIを利用して座標を取得します(GetCursorPos)APIとは

②構造体を記述します(Type)

③繰り返し処理をします(Do While)繰り返し処理

④処理中に操作できるようにします(DoEvent)

⑤セルA1に取得した値を表示します。

主な処理はこの5つになります。

 

B1セルがONの間はGetCursorPosでリアルタイムに座標の値を取得し続けてくれます。

その間ループ処理をかけているのでDoEventでウィンドウズ側に操作を預けて操作ができるようにします。

実行中はA1セルに座標の縦軸と横軸がリアルタイムで表示されます。

終了する時はB1の値をOFFに切り替えたら処理は終了します。

 

 

 

次はシートを編集しリストボックスを追加します。

シートにON、OFFのリストを作成

 

データをクリックします。

 

データ入力規則をクリックします。

 

1から4までできたらOKボタンを押します。

 

B1セルに以下のように表示されます。

 

応用

YouTube動画を一定秒数で同じ再生箇所をクリック

 

まとめ

座標を使用する機会はそんなにないと思いますが取得することでいろいろな操作が可能になりますので、座標を使用して何を作成するかを考えてみてはいかがでしょうか!

以上です。

【関連記事】

【JQuery】座標をリアルタイム表示