2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

C++でXLLアドインを作成する

Last updated at Posted at 2023-03-12

はじめに

xlwを使用してC++で自作のワークシート関数(ユーザー定義関数、User-defined functions、UDFs)を作成する方法です。VBAマクロで作成した関数と異なり、高速で処理をすることができます。

XLW - A Wrapper for the Excel API
GitHub - xlw/xlw: git repository for xlw - Excel xlls made easy

xlwは正式リリース版ではないため注意。

サンプルとして引数を倍にするだけの関数を作成します。
nibai.gif

作成方法

  1. Visual Studio を起動します。

  2. 「新しいプロジェクトの作成」を押します。
    cxll01.png

  3. 「C++」の「空のプロジェクト」を選択して「次へ」を押します。
    cxll02.png

  4. プロジェクト名と保存先(ここではC:\work\xlw)を設定して「作成」を押します。
    cxll03.png

  5. 立ち上がったら、「NuGet パーッケージの管理」を開きます。
    cxll04.png

  6. 参照を押して、「プレリリースを含める」にチェックを入れた後「xlw」を検索。「xlw」が結果に出てくるので選択。「ライセンスの表示」をクリックしてライセンスを確認した後「インストール」を押します。
    cxll05.png

  7. 「OK」を押します。
    cxll06.png

  8. ライセンスへの同意をする場合は「I Accept」を押します。同意しない場合は「I Decline」を押します。同意しない場合は使用できないためここで終了します。
    cxll07.png

  9. インストールが完了したら「NuGet: Project1」を閉じます。
    cxll08.png

  10. ソースファイルsource.cppを開いて、引数を倍にするコードを書きます。
    cxll09.png

  11. ヘッダーファイルcppinterface.hを開いて、関数のプロトタイプ宣言を書きます。
    cxll10.png

  12. プロジェクトのプロパティを開きます。
    cxll11.png

  13. 構成の種類として「ダイナミック ライブラリ (.dll)」を選択し「OK」を押します。
    cxll12.png

  14. リビルドします。これでXLLアドインC:\work\xlw\Project1\x64\Debug\Project1.xllが作成されます。
    cxll13.png

XLLアドインの登録

作成したXLLアドインを登録して使えるようにします。とりあえず試してみたいだけの場合は「一時的に利用する場合」を参照してください。

常に利用する場合

  1. Excelを開いて「開発」タブ→「Excelアドイン」をクリック。アドイン画面が出るので「参照」を押します。
    cxll14.png

  2. 「ファイルの参照」画面が出るので作成したXLLファイルのパスC:\work\xlw\Project1\x64\Debug\Project1.xllを入力し「OK」を押します。
    cxll15.png

  3. 「OK」を押します。これで登録は完了です。
    cxll16.png

アドインを解除し一覧から削除する方法

  1. Excelを閉じて、XLLアドインの名前を適当に変更します。
    del1.png

  2. Excelを開きます。下記のメッセージが表示された場合は「OK」を押します(表示されない場合は操作不要です)。
    del2.png

  3. 上記と同じ操作でアドイン画面を出して、チェックを外します。
    del3.png

  4. リストから削除するかメッセージが出るので「はい」を押します。
    del4.png

※レジストリから直接削除する場合

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\***\Excel\Add-in Manager

一時的に利用する場合

  1. 作成したXLLファイルC:\work\xlw\Project1\x64\Debug\Project1.xllを実行します。
    cxll17.png

  2. Excelが立ち上がり通知が表示されるので、「このアドインをこのセッションに限り有効にする」を押します。これで完了ですが、ワークシートがないと関数が利用できないため引き続き作業を進めます。
    cxll18.png

  3. 左上の「ファイル」クリックします。
    cxll19.png

  4. 「新規」をクリックした後「空白のブック」をクリックします(新規ブックが開きます)。
    cxll20.png

使用する

関数を入力して機能しているか確認します。
nibai.gif

補足

  1. 「数式」タブの「関数の挿入」をクリックすると、
    cxll21.png

  2. 以下のように表示されます。
    cxll22.png

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?