VBAでAPIを使う方法



VBAでAPIを使う方法

どうもtakaです、前回の記事でAPI(Application Programming Interface)のsleep関数を使用して処理を一時停止させる方法をご紹介しました、ですが前回の記事ではそもそもAPIとは何のこと?どう使うの?という疑問が生まれてしまったと思います(笑)

今回はそのあたりについて簡単にお話していきたいと思います(^^♪

そもそもAPIって何?

そもそもAPIとは何か、API、プログラムに詳しくない方でも一度は目にしたり耳にしたりしたことがあるのではないでしょうか?

APIはApplication Programming Interface の略で、簡単に言うと【プログラムからソフトウェアを操作するインターフェイス】となります。あらかじめ用意されているAPI関数を使用してWindowsの持っている機能をVBAやほかのプログラムから利用できるようにするものです。(OLEとは別物ですよ)

今回お話するのは【Windows API】についてですが、このほかにも【Google API】を使用することによってGoogleマップを使用できたりと、様々なAPIがあります。VBAだけではできないような様々な機能を実装することができます。

VBAでAPIを使用する方法

まずVBAでAPIを使用するには 【どのライブラリ】の【どの関数】を使用するかをはじめに宣言しなければいけません。

宣言には【Declareステートメント】を使用して宣言します。下記画像の赤枠が宣言になります。

【Private Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)】というのは、【kernel32というライブラリ】の【Sleepという関数】を使用するという宣言になります。
※APIの宣言にはモジュールの一番上に宣言する必要があります。

sleep関数の使い方については下記の記事にて

VBA【Sleep関数(API)】指定した時間分処理を止める
どうもtakaです、VBAの処理を一定時間止めたいと感じたときはありませんか?基本的にVBAで処理を一時停止することはできません※、ですがAPIを使用すればそれが可能にな...

2007年より前のOfficeを使用している場合

Office2010以上であれば上記の書き方で32bitでも64bitでも動作可能ですが、Excel2007になるとVBAのバージョンが古くなってしまい、32Bit版と64Bit版で宣言の方を変えなければいけないのです(。-∀-)タハ-

32Bit版ではLong型ですが、64Bit版では、LongPtr型 または Longlong型で宣言する必要があります。なので下記のように宣言することでこの問題を解決させることが可能です。

※申し訳ありませんが動作確認はしておりません

 

最後に

最後にAPIはきちんと使う事でVBAだけではできないような機能を実装することができます、ですが便利だからといって気軽に使っていい物でもありません、使い方を間違えるとWindowsの不具合にもつながる可能性もありますので使用については慎重に、APIを使用しないと実装できないのかを考えてから使用することをおすすめいたします。

 

ファイルやコードの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

ブログの購読

 

【E-VBA】の更新通知を受け取るにはこちら↓



コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ABOUTこの記事をかいた人

あることがキッカケでVBAを独学で勉強している、非IT企業の会社員。 今はVBAで出来ることを模索しながら別の開発言語の取得、基本情報技術者試験合格が目標