Excel, VBA, Windows API

VBAでマクロを作っている時に「指定したウィンドウを操作したいな」という場面に出くわすことはないでしょうか?ここでいう操作とはたとえば、指定したエクスプローラーのウィンドウを開くだけではなく最大化して表示したり、指定したウィンドウをま ...

2023年2月2日AI, Deep Learning, Excel, VBA, Windows API

昨今話題のChatGPTというAI(人工知能)をご存知でしょうか。
ChatGPTとは簡単にいうと何でも答えてくれるチャットボットのようなもので、女子高生AI『りんな』を知っている人はそれと同じようなものをイメージしてもらえれ ...

Excel, VBA, 数学

今回は素因数分解アルゴリズムかつ決定的素数判定アルゴリズムの「試し割り法」について解説していきます。試し割り法は素因数分解をするためのアルゴリズムですが、素因数分解をすればその数が素数であるかも同時に判定することができるため素数判定ア ...

2024年4月14日C++, DLL, Excel, VBA

第2回、第3回、第4回を通して関数の基本となる引数と戻り値の設定方法を解説してきたため、C++の知識さえあればVBAと連携可能な関数はある程度何でも作成できるような状態となりました。

しかし、これまでのコードはVBAで自作 ...

2023年8月19日Excel, VBA, Windows API

VBAでマクロを作っている時に「指定したウィンドウを最前面に表示したいな」という場面に出くわすことはないでしょうか?

たとえばWindows APIのマウス操作を可能にするmouse_event関数などでウィンドウ内の何か ...

2023年1月2日Excel, VBA, アルゴリズム, 数学

今回は決定的素数判定アルゴリズムの「エラトステネスの篩ふるい」について解説していきます。
素数判定アルゴリズムは数多く存在しますがその中でも非常に単純で理解しやすいアルゴリズムです。

それもそのはず、このアルゴリズ ...

2023年1月5日Excel, VBA, アルゴリズム, 数学

今回は確率的素数判定アルゴリズムの「フェルマーテスト」について解説していきます。
フェルマーというと『フェルマーの最終定理』で聞いたことがあるという人も多いのではないでしょうか。最終定理という名前で有名なこの定理ですが別名『フ ...

2023年1月2日Excel, VBA, アルゴリズム, 数学

今回は任意の自然数の最大公約数を求める「ユークリッドの互除法」について解説していきます。
アルゴリズムとしての歴史は非常に深く、明示的に記述された最古のアルゴリズムといわれていてその誕生は紀元前3世紀にまで遡るアルゴリズムです ...

2023年2月11日Excel, VBA, アルゴリズム, 数学

今回は乱択アルゴリズム「モンテカルロ法」について解説していきます。
このモンテカルロ法、あえて処理の中で乱数を使ってランダム性を出すというアルゴリズムなのですが、ランダム性を出しているのにも関わらず最終的にはある1つの答えが浮 ...

2023年1月2日Excel, VBA, アルゴリズム, 数学

今回は凸包とつほうアルゴリズムの「ギフト包装法」について解説していきます。
凸包アルゴリズムはいろいろな種類がありますが、ギフト包装法は最も単純で理解しやすいアルゴリズムです。その分、他の凸包アルゴリズムに比べて処理時間は多く ...

2022年10月17日C++, DLL, Excel, VBA

第2回、第3回で引数のありと引数なしの2パターンの関数の作成しました。
関数としては入力となる「引数」と出力となる「戻り値」が設定ができれば、基本的な関数としての機能は満たせます。

という訳で今回は「戻り値あり」パ ...

C++, DLL, Excel, VBA

前回、”HelloWorld”というメッセージを表示する「HelloWorld」関数を作成しました。
この関数は引数も戻り値もない、いうなればDLL内で完結している関数でした。

しかし、VB ...

2022年8月21日C++, DLL, Excel, VBA

前回、何も処理を行わない「EmptyProcess」関数の入った「VBA_DLL.dll」を作成しました。

しかし、VBAで呼び出したときに何も起きないので成功しているかが少しわかりづらかったです。
そこで今回は視 ...

2022年8月21日C++, DLL, Excel, VBA

今回はVBAで呼び出し可能なDLLファイルをVisual Studioを使って作成していきます。
まずは単純にVBAで”自作したDLLファイルを呼び出せるのか”を確認するため、作成するDLLの中身の処理 ...