【Excl VBA】Win32API関連書籍
今回は VBA で Win32API を扱う方法 が載っている稀少な本を3冊紹介しちゃいますよ。VBA の中でも極めてハイレベルな知識や技術を扱う本ですよ。
Excel VBAでIEを思いのままに操作できるプログラミング術
Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応 中古価格 |
Web サイトを巡って「このお店のラーメンは美味しそうだからブックマークしましょー」とか、「新しいゲームが発売されるのはいつかなー?」とかコツコツ情報を集めるのは楽しいものですよね。とはいえ、仕事も忙しくて時間は限られていますから、そうそうググってばかりもいられません。そんなときに自分に代わってググってあちこちの Web サイトから必要な情報を集めてくれるシステムがあれば、とーっても便利ですね。そういうシステムを VBA で作ってしまおうというのが本書 Excel VBAでIEを自由自在に操って情報を集めましょうなのです! 長いタイトルですね。ちなみに Excel 2013/2010/2007/2003 に対応していますよ。
本書を読めば Excel VBA による Web の操作ができるようになります。ロボティック・プロセス・オートメーション (RPA) などとという、なんだかよくわからないけど、カッコいい技術も学べてしまいますよー。こばとが書いた本だったら不安になるかもしれないけど、マイクロソフト MVP を受賞した著者陣によってまとめられた本なので安心です。アマゾンのレビューでも非常に高評価を与えられている技術書です。売り切れないうちに買ってくださいなー。
[注] ロボティック・プロセス・オートメーション (RPA) とは、機械学習や人工知能を活用した業務自動化のことです。
大村あつしの Excel VBA Win64/32 APIプログラミング
大村あつし の Excel VBA Win64/32 APIプログラミング 中古価格 |
64ビット Windows/Excel 用の Win64 API 、32ビット Windows/Excel 用の Win32 API の2種類にきっちり対応した APIプログラミングの本です。VBA の世界では知らぬ者はいないという大村あつしさんの著書です。
さて、VBA をマスターすると色々なことができてしまうのですが、普通のやり方では、意外にも「フォルダを作成する」、「ファイルをゴミ箱にぽいと捨てる」、「コードの実行速度を計ってみる」というような基本的なことができなかったりします。こういうことは普通なら C や C++ などで Win64/32API を用いたプログラムを書いて制御するわけです。だから VBA では販売管理/経理システムやスケジュール管理システムなどを開発することができないと思われていますが ……
しかーし! Excel VBA でもできてしまうのです!
驚きですねー。びっくりしますねー。腰を抜かしてしまいますねー。
え? 大げさ? Excel オタクもほどほどにしろ?
こばとは Excel オタクじゃありませんよ。この本の著者の大村あつしさんは Excel オタクだと思いますけど、こばとは違いますよ。まあとにかく、本書では Excel VBA に Win64/32API を組み込む方法がきっちりと書かれております。サンプルプログラムも載っています。本書を繰り返し読めば、Excel VBA の限界を超えてさらなる高みを目指すことができますよー。Excel オタクの皆さんは買ってねー。こばとはオタクじゃないけどねー。Excel 97 以降の全てのバージョンに対応しているので、古い Excel を使っている人も安心して購入してくださいなー。
Excel VBAによるWin32 APIプログラミング入門
Excel VBAによるWin32 APIプログラミング入門 中古価格 |
大村氏による APIプログラミングの書籍をもう1冊紹介しておきます。こちらは 2002 年に発売されたかなり古い本ですけど、まだ(この記事を書いている時点で)中古で 10 冊ほど出回っています。対応するのは Win32 API のみです。本書の第1部を読むと「Windows はどうやって動いているのかな」ということを学ぶことができます。第2部から 「APIプログラミングでどうやるのかな」てことを学習します。
【GPT解説】Win32 APIをVBAで使用する方法
Win32 APIをVBAで使用するには、Declareステートメントを使用してWin32 API関数を宣言し、それをVBAコード内で呼び出す必要があります。以下は、VBAでWin32 APIを使用する簡単な例です。この例では、MessageBox関数を使用してメッセージボックスを表示します。
Option Explicit ' Win32 API関数の宣言 Private Declare PtrSafe Function MessageBox Lib "user32" Alias "MessageBoxA" _ (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, _ ByVal wType As Long) As Long Sub ShowMessageBox() ' メッセージボックスを表示 Dim result As Long result = MessageBox(0, "Hello, VBA with Win32 API!", "Message", 1) ' 結果の確認 If result = 1 Then MsgBox "ユーザーがOKをクリックしました。" Else MsgBox "ユーザーがキャンセルまたは×ボタンをクリックしました。" End If End Sub
この例では、MessageBox関数をDeclareステートメントで宣言しています。Aliasキーワードは、Win32 API関数の実際の名前がMessageBoxAであることを指定しています。ByValは引数を値渡しすることを示し、PtrSafeは64ビットのOfficeバージョン(例:Excel 2013以降)で使用する際に必要です。上記のShowMessageBoxサブルーチンは、Win32 APIのMessageBox関数を呼び出してメッセージボックスを表示し、ユーザーがOKをクリックしたかどうかを確認する簡単な例です。
コメント
[GPT] Win32 API(Windows API)は、Microsoft WindowsオペレーティングシステムでプログラムがWindowsと対話するための一連の規約や関数の集まりです。これは、Windows上で動作するソフトウェアが、ウィンドウの表示、ボタンのクリック、テキストの入力など、様々な操作を行えるようにするためのプログラミングインターフェースです。
ここで、Win32は、Windows 95からWindows XPまでの32ビットのWindowsオペレーティングシステムを指します。現在は64ビットのバージョンもありますが、Win32 APIの名前は歴史的な理由から使われています。
Win32 APIを使用することで、プログラマーはWindowsアプリケーションを開発し、ウィンドウやボタンなどのGUI(グラフィカルユーザーインターフェース)を構築できます。これにより、ユーザーは直感的な操作でソフトウェアを利用できます。