MATLAB 関数からのマクロの作成

出力が単一および複数のアドインとマクロの作成

Microsoft® Excel® のアドインおよびマクロの作成に関する基本的なワークフローは、MATLAB からの Excel アドインの作成およびアドインおよび COM コンポーネントと Microsoft Excel との統合にあります。

可変長入力と可変長出力の操作

この例では、可変長入力と可変長出力をもつ関数の取り扱い方法、およびこれらの関数からのマクロの作成方法について説明します。

概要

myplot は単一の整数入力を取り、1 からその数までのラインをプロットします。

mysuminteger 型の varargin の入力を取り、すべての数を合計し、結果を返します。

myprimes は単一の整数入力 n を取り、n 以下のすべての素数を返します。

Microsoft Excel ファイル xlmulti.xls では、いくつかの方法でこれらの関数を実際に示します。

コード例の場所

製品内からコード例の場所にアクセスする方法の詳細については、例のファイルのコピーを参照してください。

プロジェクトの作成

MATLAB からの Excel アドインの作成内の説明に従ってこの例を実行するにあたり、以下の情報を使用します。

プロジェクト名xlmulti
クラス名xlmulticlass
コンパイルするファイル
(myfiles\workxlmulti フォルダー内)
myplot.m
myprimes.m
mysum.m

COM 関数を Microsoft Excel アドインに追加

  1. システムで Microsoft Excel を起動します。

  2. ファイル myfiles\work\xlmulti\xlmulti.xls を開きます。

    次のように例が表示されます。

メモ:

このファイルにマクロが含まれていることを Excel プロンプトが示す場合、[マクロを有効にする] をクリックしてこの例を実行してください。

myplot の呼び出し

この図では、値 4 で関数 myplot を呼び出しています。関数を実行するには、セル A7 (=myplot(4)) をアクティブにします。F2 キーを押してから、Enter キーを押します。

このプロシージャでは MATLAB® Figure ウィンドウでラインを 1 から 4 までプロットします。このグラフィックスは MATLAB 内で Figure を操作する方法と同様に操作できます。ライン スタイルまたは色の変更など、一部の機能は使用できません。

この関数は値を返さないため、呼び出し元のセルには 0 が示されます。

4 つの異なる方法での mysum の呼び出し

この図では、関数 mysum を以下の異なる 4 つの方法で呼び出しています。

  • 最初の方法 (セル A14) は、1 から 10 までの値を取得して合計した結果 55 (=mysum(1,2,3,4,5,6,7,8,9,10)) を返します。

  • 2 番目の方法 (セル A19) は、1 から 10 の値をもつセル範囲である範囲オブジェクトを取得し、合計した結果 55 (=mysum(B19:K19)) を返します。

  • 3 番目の方法 (セル A24) は、複数の範囲オブジェクトを取得し、合計した結果 120 (=mysum(B24:K24,B25:L25,B26:D26)) を返します。この例は、範囲が同じサイズである必要はないことと、すべてのセルに値が必要なわけではないことを示しています。

  • 4 番目の方法 (セル A30) は、範囲オブジェクトと明示的に指定された値の組み合わせを取得し、合計した結果 16 (=mysum(10,B30:D30)) を返します。

この例は、Excel ファイルが開かれたときに実行されます。例を再度アクティブにするには、適切なセルをアクティブにします。その後、F2 キーを押し、続いて Enter キーを押します。

myprimes マクロ

この例では、マクロ myprimes は関数 myprimes.m をセル A42 の初期値 10 で呼び出します。関数は 10 未満のすべての素数を B42 から E42 に返します。

マクロを実行するには、Visual Basic® Editor ではなく Excel メイン ウィンドウで Alt キーと F8 キーを同時に押すか、[ツール][マクロ][マクロ] を選択して、[マクロ] ダイアログ ボックスを開きます。

リストから myprimes を選択して、[実行] をクリックします。

この関数は返された出力が指定した出力範囲より大きい場合に、自動的にサイズ変更します。セル A42 の値を 10 より大きい数値に変更します。その後、マクロを再実行します。出力は A42 に入力した数値より小さいすべての素数を返します。

Microsoft Visual Basic コードの検査 (オプション)

  1. Microsoft Excel のメイン ウィンドウで、[ツール][マクロ][Visual Basic エディター] を選択します。

  2. Microsoft Visual Basic の [プロジェクト - VBAProject] ウィンドウで、VBAProject (xlmulti.xls) をダブルクリックして展開します。

  3. Modules フォルダーを展開し、Module1 モジュールをダブルクリックします。これにより、このプロジェクトのコードを表示した VB コード ウィンドウが開きます。

詳細情報

可変長引数の取り扱いについての詳細は、可変引数をもつプログラムを参照してください。