今回はWinAPIについてご紹介、とは?を簡単に説明していきます。

API(エーピーアイ)・・・?何となく難しそう。

意外と簡単だから読んでいってね!
この辺りのコードでも使っていまして、VBAだけではできない痒い所に手が届く設定なんかをしてくれる存在です。
1. APIって何?

APIとは簡単に言うと「アプリ同士がやり取りをするためのルール」です。
例えば、天気アプリを使っているとき、そのアプリはインターネットから天気の情報を取ってきます。どうやって取ってくるかというと、天気サービスとアプリが「あるルールに従って情報を交換する」という仕組みがあるからです。この「あるルール」のことをAPIと言います。
つまり、APIは、アプリとアプリが「どうやって話すか」を決めている、いわば「手順書」みたいなものです。
2. WinAPIって何?

WinAPI(ウィンエーピーアイ)は、Windowsを操作するための特別なルールです。
Windowsといえば誰もが知ってるOS(オペレーティングシステム)。
基本ソフトウェアとも言われるOSは、私たちが直接使うアプリケーションと機械であるパソコンをつないでくれる存在。例えば、キーボードを押したときの入力処理、ディスプレイへの出力などをを制御しています。
VisioなどのアプリだったりVBAの様なマクロでは、Windowsで制御するような基本的なものを触るには限界があります。そんな時に使えると便利なのがWinAPIなのです!
3. VBAだけではできないこと

では、VBAだけではできない事って具体的どんなことでしょう?
VisioのVBAは、図形を描いたり、作業を自動化するのにすごく便利ですが、Windowsの基本的な部分を操作することはできません。たとえば:
- ウィンドウのサイズを変える:Visioのウィンドウを動かしたり、他のアプリのウィンドウを調整することは、VBAだけではできません。
- マウスの位置を知る:マウスがどこにあるかを知って、それを使ってVisioで図形を動かすことは、VBAだけでは難しいです。
- システムを管理する:パソコンのメモリやCPUの使い方を調整することは、VBAではできません。
これらの操作をしたいときに、WinAPIを使うことで、Windowsをもっと自由にコントロールできるようになるんです。
4.VBAでWinAPIを使うのは簡単
Visio VBAでWinAPIを使うには、まずDeclare
文でAPI関数を宣言し、それを普通の関数みたいに呼び出すだけです!たとえば、MessageBox
を使いたいなら、こんな感じ👇
'宣言Declare PtrSafe Function MessageBoxA Lib "user32.dll" (ByVal hWnd As LongPtr, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long) As Long
Sub TestMessageBox()
'呼び出し
MessageBoxA 0, "Hello, WinAPI!", "Test", 0
End Sub

今度はWinAPIを使ったコードなどもUpしていく予定だから楽しみにしてね♪