<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>自動化 | nujonoa_blog</title>
	<atom:link href="https://nujonoa.com/tag/%e8%87%aa%e5%8b%95%e5%8c%96/feed/" rel="self" type="application/rss+xml" />
	<link>https://nujonoa.com</link>
	<description>人生に役立つデータ集</description>
	<lastBuildDate>Wed, 16 Dec 2020 01:19:02 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>

<image>
	<url>https://nujonoa.com/wp-content/uploads/2019/04/cropped-DSC00976-e1554456145409-32x32.jpg</url>
	<title>自動化 | nujonoa_blog</title>
	<link>https://nujonoa.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>VBAでマウスを操作する方法、座標の確認方法</title>
		<link>https://nujonoa.com/mouse-automation-with-vba/</link>
					<comments>https://nujonoa.com/mouse-automation-with-vba/#respond</comments>
		
		<dc:creator><![CDATA[nujonoa]]></dc:creator>
		<pubDate>Wed, 16 Dec 2020 12:45:00 +0000</pubDate>
				<category><![CDATA[IE関係]]></category>
		<category><![CDATA[マクロVBA]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[マウス]]></category>
		<category><![CDATA[自動化]]></category>
		<guid isPermaLink="false">http://nujonoa.com/?p=8174</guid>

					<description><![CDATA[目次 VBAでマウスを操作する方法、座標の確認方法マウス操作のおまじないを使って左クリックを行う。マウスの座標を確認まとめ VBAでマウスを操作する方法、座標の確認方法 仕事でマウスを自動化し、業務改善をしましたので、そ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">VBAでマウスを操作する方法、座標の確認方法</a></li><li><a href="#toc2" tabindex="0">マウス操作のおまじないを使って左クリックを行う。</a></li><li><a href="#toc3" tabindex="0">マウスの座標を確認</a></li><li><a href="#toc4" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">VBAでマウスを操作する方法、座標の確認方法</span></h2>



<p>仕事でマウスを自動化し、業務改善をしましたので、<br>それをまとめてみました。</p>



<p>思った以上に簡単なので、是非使ってみていただいたらと思います。</p>



<h2 class="wp-block-heading"><span id="toc2">マウス操作のおまじないを使って左クリックを行う。</span></h2>



<p>マウスの自動化は、元々用意されている<br>「マウス操作のおまじない」をプログラム上部に書き込み、<br>そのおまじないを用いてマウス操作を自動化していきます。</p>



<p>さっそく、プログラムを見ていきましょう。(ダブルクリックでコピーできます)</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
'↓↓↓↓マウス操作のおまじない開始↓↓↓↓
Private Type Position
    x As Long
    y As Long
End Type
Declare Function SetCursorPos Lib &quot;user32&quot; (ByVal x As Long, ByVal y As Long) As Long
Declare Sub mouse_event Lib &quot;user32&quot; ( _
    ByVal dwFlags As Long, _
    Optional ByVal dx As Long = 0, _
    Optional ByVal dy As Long = 0, _
    Optional ByVal dwDate As Long = 0, _
    Optional ByVal dwExtraInfo As Long = 0)
Declare Function GetCursorPos Lib &quot;user32&quot; _
    (lpPoint As Position) As Long
    
Declare Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As Long)

'mouse_event用の定数宣言
Private Const MOUSEEVENTF_ABSOLUTE = &amp;H8000
Private Const MOUSEEVENTF_MOVE = &amp;H1
Private Const MOUSEEVENTF_LEFTDOWN = &amp;H2
Private Const MOUSEEVENTF_LEFTUP = &amp;H4
Private Const MOUSEEVENTF_RIGHTDOWN = &amp;H8
Private Const MOUSEEVENTF_RIGHTUP = &amp;H10
Private Const MOUSEEVENTF_MIDDLEDOWN = &amp;H20
Private Const MOUSEEVENTF_MIDDLEUP = &amp;H40

'Public Class Form1
    Public Declare Sub keybd_event Lib &quot;user32&quot; (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Integer, ByVal dwExtraInfo As Integer)
'↑↑↑↑マウス操作のおまじない終了↑↑↑↑
'↓↓↓↓ここからメインプログラム↓↓↓↓

Sub マウスクリック()

    SetCursorPos 900, 140 '左から900ピクセル、上から140ピクセルの位置にカーソルを移動

    Sleep 200

    mouse_event MOUSEEVENTF_LEFTDOWN  '左ボタン押下（範囲選択のクリックのつもり）

    mouse_event MOUSEEVENTF_LEFTUP  '左ボタン解放


End Sub
</pre></div>


<p>上記プログラムで実際に動作をしているのは、<br>↓ここからメインプログラム　となっており、<br>・カーソルを移動　SetCursorPos 900, 140<br>・少し待って、Sleep 200<br>・左クリックを押し　mouse_event MOUSEEVENTF_LEFTDOWN<br>・左クリックを話す　mouse_event MOUSEEVENTF_LEFTUP<br>となっております。</p>



<p>同様におまじないを使うことで、<br>下記の通りマウスを操作することができます。</p>



<figure class="wp-block-table is-style-regular"><table><tbody><tr><td>コード</td><td>ボタン</td><td>動作</td></tr><tr><td>SetCursorPos x, y</td><td></td><td>x,y座標に移動</td></tr><tr><td>mouse_event MOUSEEVENTF_LEFTDOWN</td><td>左クリック</td><td>押す</td></tr><tr><td>mouse_eventMOUSEEVENTF_LEFTUP</td><td>左クリック</td><td>離す</td></tr><tr><td>mouse_eventMOUSEEVENTF_RIGHTDOWN</td><td>右クリック</td><td>押す</td></tr><tr><td>mouse_eventMOUSEEVENTF_RIGHTUP</td><td>右クリック</td><td>離す</td></tr><tr><td>mouse_eventMOUSEEVENTF_MIDDLEDOWN</td><td>中クリック</td><td>押す</td></tr><tr><td>mouse_eventMOUSEEVENTF_MIDDLEUP</td><td>中クリック</td><td>離す</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc3">マウスの座標を確認</span></h2>



<p>案外簡単にマウスの操作をできることが分かったと思いますが、<br>ここで躓くのが、マウスの座標を確認する方法です。</p>



<p>特に、人によってパソコンの画面サイズが違うと、<br>自分のパソコンではうまくいったのに、他の人のパソコンでは動作しない可能性があります。</p>



<p>その問題を解決するのが下記プログラムとなります。<br>マウスを左クリックした地点の座標を順番に5回とってくるようになっています。<br>(ダブルクリックでコピーできます)</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
Sub 座標校正()
  
  Dim sht As Worksheet
  
  Sleep 500
  
  Const CN = 5
  
    Dim pos As Position
    
    i = 0
  
  Dim currentClickNum As Long
  Do While i &lt; CN
    If GetAsyncKeyState(1) &lt; 0 Then
      i = i + 1
    Call GetCursorPos(pos)
      Cells(i + 2, 3) = pos.x
      Cells(i + 2, 4) = pos.y
      Sleep 500
    End If
  Loop
  
End Sub

</pre></div>


<p>上位のプログラムでは、<br>・Do While i &lt; max　で、指定のクリック数までプログラムを繰り返し、<br>・GetAsyncKeyState(1)&lt;0 で、マウスが押されたのを判断し、<br>・Call GetCursorPos(pos)　で、座標を読み込み、セルに書き出しています。</p>



<p>この作業をまずおこない、各々のパソコンの画面に校正し、<br>下記の通り他のプログラムで、座標を読み込んであげることで、<br>どのパソコンでも同じ作業を覚えこますことができます。</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: vb; title: ; notranslate">
SetCursorPos Worksheets(&quot;座標校正&quot;).Cells(2, 3).Value, Worksheets(&quot;座標校正&quot;).Cells(2, 4).Value
</pre></div>


<h2 class="wp-block-heading"><span id="toc4">まとめ</span></h2>



<p>マウスクリックは正直禁断の使い方ではありますが、<br>旧態依然としたシステムなどを扱っているものに関しては、<br>非常に有効な対策となります。</p>



<p>また、おじさんでも、やっていることがわかりやすい点から、<br>拒否反応なく、導入してもらうことができます。</p>



<p>是非使ってみてください。</p>



<div class="wp-block-cocoon-blocks-tab-caption-box-1 tab-caption-box block-box has-border-color has-pink-border-color"><div class="tab-caption-box-label block-box-label box-label fab-book"><span class="tab-caption-box-label-text block-box-label-text box-label-text"><span class="marker-animation-2071">こちらを参照ください！</span></span></div><div class="tab-caption-box-content block-box-content box-content">
<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-together">



<a rel="noopener" target="_blank" href="https://nujonoa.com/summary-of-how-to-control-ie-with-vba/" title="【まとめ】VBAでIEを動かすプログラムまとめ！" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-right cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img decoding="async" width="160" height="90" src="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-160x90.jpg 160w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-120x68.jpg 120w, https://nujonoa.com/wp-content/uploads/2019/11/coins-1015125_1280-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">【まとめ】VBAでIEを動かすプログラムまとめ！</div><div class="blogcard-snippet internal-blogcard-snippet">まだ、あまり確立されていないVBAでIEを動かすプログラムについて、素人ながらまとめてみました！【まとめ】VBAでIEを動かすプログラムまとめ！・VBA(マクロ)でIEを動かしたい！・社内プログラムでIEと連動させたい。・けれど、参考になる...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://nujonoa.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">nujonoa.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.06.10</div></div></div></div></a>


</div>



<p></p>
</div></div>
]]></content:encoded>
					
					<wfw:commentRss>https://nujonoa.com/mouse-automation-with-vba/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
