2017.11.23みなさまこんにちは、ノグチです。エクセルVBAは、慣れてくると色々なことができてとっても便利ですよね。APIについてご紹介していきます。Interfaceの頭文字をとったもので、ある機能やデータを外部プログラムから呼び出して利用するための手段であるということは、ブログ内の色々な記事で既にご紹介されている通りです。Scriptを使ってスプレッドシートの自作関数を作っています。APIを使って郵便番号から住所を求めるスプレッドシート関数を作ります。API初心者にもおすすめです。APIはそのWindows版で、WindowsのOSにあらかじめ用意されている色々な機能を呼び出したりする場合の手段で、呼び出し元のプログラムと呼び出したい機能との間の橋渡し役になってくれる優れもの。エクセルVBAからも使うことができ、エクセルVBA以外のWindowsの機能やデータを呼び出して使うことができるのです。APIを使う際によく聞くであろう単語が、DLLです。User32.DLLといった名前で見たことがあるかもしれません。Libraryの略で、色々なアプリケーションで汎用的に使える機能や各機能にアクセスする関数をまとめており、エクセルVBAのようなプログラムから呼び出せるようにしてあるものです。APIでDLL内の関数を指定して、引数を渡すWindowsAPIで指定されたDLL内の関数が、目的のプログラムにアクセスして処理をさせる目的のプログラムが処理した結果をDLL内の関数からWindowsAPIを通して、エクセルVBAに返すざっくりとこんな流れで処理をしてくれます。APIとして公開されているAPIは、下記マイクロソフト社のページで閲覧することができます。APIのMessageBeepを使って、Windowsのシステム音を鳴らしてみましょう。APIを使うためには、VBAコードの宣言セクションで、「この名前の、ここに格納されている関数を使います」という宣言をする必要があります。その宣言に使うのが、Declareステートメント。このステートメントを使って、「MessageBeepを使いますよ」という宣言をします。APIの宣言をしましょう。型まずは、記述方法のAPI名の部分をMessageBeepと指定します。MessageBeepは『User32.DLL』というDLLの中に含まれているので、”DLL名”の部分を”User32”に置き換えます。MessageBeepは、鳴らしたい音の番号を引数に指定する必要がありますので、引数も一緒に宣言しましょう。Functionで返される値の型も定義します。するとこんな文になります。Integerこれで、「”User32”というDLLにある、MessageBeepを使います。」という宣言ができました。MessageBeepを呼び出してシステム音を鳴らすあとはコードの中でDeclareステートメントで宣言したAPI名を呼び出すだけです。Subこのコードを実行してみると、よく聞くあのWindowsのシステム音を流すことができます。API名を指定するときの注意点VBAのコード内でWindowsAPIを使用する場合は、当然ながらAPI名称が正しく記述されている必要があります。この「正しく」とは、アルファベットの大文字と小文字まで正確に記述することも含んでいます。~の後に続く、本来MessageBeepと記述するところをmessageBeepと記述してコードを実行させてみると...大文字を小文字にしただけで別のものとみなされるようで、この通りエラーになってしまい、こちらが意図した処理を行うことができません。DeclareステートメントでAPIを指定する際は、API名のアルファベットの綴りはもちろん、大文字・小文字まで正確に記述するようにしましょう。最後にいかがでしたでしょうか。APIの宣言方法をご紹介しました。APIをご紹介していきます。APIを使用して外部プログラムを呼び出して利用することができます。その簡単な方法と、おすすめの関数についてシリーズでお伝えします。投稿者プロフィールノグチフリーランスPG・SE元製造子会社SE。業務システム保守・導入両方やった経験をお伝えすることで、少しでもシステムや手作業に悩まされる人が減ればいいなぁと日々夢見ております。「コミュニティ+講座」形式で継続性&教え合える環境も提供。!ノンプログラマーがプログラミングスキルを身に着ける支援ををするコミュニティ。セミナー・もくもく会・Facebookグループのサポートで「自らで学び続ける力をつける」支援、「教え合うことで学びの価値を上げる」場の提供をしています。事例満載!ノンプログラマーのための社内のVBA&GAS活用法コミュニティ「ノンプログラマーのためのスキルアップ研究会」(通称ノンプロ研)。先日開催された定例会のテーマは「ノンプログラマーのための社内のVBA&GAS活用法」。先輩お二方に、そのノウハウをうかがいました。2019.08.24Excel・VBA活用術エクセルで重複したデータを削除する方法とVBAプログラムエクセルの表で間違えて同じデータを入力してしまっている場合の簡単な対処法です。エクセルの超便利機能である重複削除の方法と、それをVBAのプログラムで実行する方法についてお伝えします。「初心者でもわかるエクセルVBAのクラスモジュール」をテーマにお送りしています。今回はエクセルVBAで、クラスモジュールにパブリック変数を宣言して、クラスに最も簡単なプロパティを追加する方法です。2018.12.19Excel・VBA活用術エクセルVBAで大量の画像をまとめてシートに貼り付けるAddPictureメソッドの使い方AddPictureメソッドとFileSystemオブジェクトを使って、指定したフォルダにある画像をまとめてエクセルシートに貼り付ける方法をご紹介しています。この方法で、画像のサイズや位置調整のような面倒なことはVBAに任せてしまいましょう!画像の貼り付け漏れだって防げます。2017.09.07Excel・VBA活用術なぜ、ExcelVBAの「実務」に特化した本が必要なのかExcelVBAを実務で使い倒す技術という本を書きました。ExcelVBAの書籍はたくさん出版されていますが、今回なぜ「実務」に特化した内容の本を書こうと思ったのか、その理由をお伝えしたいと思います。【エクセルVBAでIE操作】10分で終わるセッティングとWEBページの閲覧確認エクセルVBAでInternetExplorerを操作するシリーズの導入編です。今回はIEを操作するときに最初にすべきセッティングと実際にWEBページを開く動作確認までをやってみたいと思います。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント107セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。「コミュニティ+講座」形式で継続性&教え合える環境も提供。詳細・お申込はこちら隣ITを応援する当ブログを「応援したい!」「役に立ったよ!」というお気持ちを、コチラからお支払いただくことができます。日々更新の活力倍増いたします。※PayPalアカウントが必要です。※金額は変更可能です。Platform23HTML・CSS32iPhone・アプリ29Monaca・スマホアプリ開発7PC全般・Windows86PowerPoint・VBA28Python87RPA1VBScript15Vue.js・JavaScript13WEBサービス・クラウド68WordPress・ブログ88Word・VBA42コミュニティ・イベント107セミナーのお知らせ11チャットワーク72データ分析・アクセス解析40仕事・生産性・働き方73動画配信8商業出版21起業・フリーランス72電子書籍・Kindle3運営会社プランノーツは"IT×働き方改革"をお手伝いする会社です。ご依頼・お見積などお気軽にどうぞ!お問い合わせフォーム新着記事GASでGoogleスライドのSlideオブジェクトの概要とその取得方法2020.01.162020.01.16【エクセルVBA】ユーザーフォームにコンボボックスを追加する方法2020.01.162020.01.16GASでGoogleスライドを操作するSlidesサービスの基礎の基礎2020.01.152020.01.16GASでGoogleスライドのプレゼンテーションを操作するはじめの一歩2020.01.142020.01.15GASのconsoleクラスのメソッドで実行時間をログ出力する方法2020.01.122020.01.12Facebookページいつも隣にitのお仕事タイトルとURLをコピーしました。