VBAでAPIを使う方法

ロゴ



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

前回の記事でAPI(Application Programming Interface)のSleep関数関数を使用して処理を一時停止させる方法をご紹介しました、ですが前回の記事ではそもそもAPIとは何のこと?どう使うの?という疑問が生まれてしまったと思います(笑)
前回の記事はこちら『VBA【Sleep関数(API)】指定した時間分処理を止める

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

そもそもAPIって何?

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

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

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

VBAでWindowsAPIを使用する方法

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

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

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

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

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

Office2007より前のOfficeを使用している場合注意が必要

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

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

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

最後に

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

 

フォロー・チャンネル登録お願いします

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

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

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

ロゴ

コメントを残す

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