hmPeachが秀丸マクロへアクセスする関数

PHPから秀丸マクロへアクセスする関数

PHPのライブラリを生かしつつ、秀丸マクロの機能や各種値もほぼ全て使えるところが、
hmPeachが優れている所以です。

  • 秀丸マクロをそのまま実行
  • 「秀丸マクロの変数」⇔「PHPの変数」を相互にやり取り。

の2つの手段で秀丸マクロを取り扱うことが出来ます。

  • PHPから秀丸マクロを実行

    • $Hm->Macro->doEval( ヒアドキュメント or 文字列)

      引数の文字列を、「秀丸マクロ」として実行する。

  • PHPから秀丸マクロの変数の読み書き

    • $Hm->Macro->getVar('秀丸マクロのシンボル名')

      対象の「秀丸マクロ」としてのシンボル名に対応する値を取得する。

    • $Hm->Macro->setVar('秀丸マクロのシンボル名', 新たな値)

      対象の「秀丸マクロ」としてのシンボル名に、新たな値を設定する。
      (読み取り専用の値には設定出来ません)

<?php
// 秀丸マクロの「#aaa」という変数に3を設定。
$Hm->Macro->setVar('#aaa', 3);
 
// 秀丸マクロの「$bbb」という変数に「あいうえお」を設定。
$Hm->Macro->setVar('$bbb', "あいうえお" );
 
list($result, $error) = $Hm->Macro->doEval( <<<'MACRO'
    message($bbb);
    $$message = $bbb + $bbb;
    message($$message);
 
    // アウトプット枠へ出力
    #OP = loaddll( "HmOutputPane.dll" );
    #ret = dllfunc(#OP, "Output", hidemaruhandle(0), $$message);
    freedll(#OP);
MACRO );

if ($result > 0) {
    echo "マクロ成功\n";
} else {
    echo "マクロ失敗\n";
}

echo $Hm->Macro->getVar('$bbb');
echo "\n";
echo $Hm->Macro->getVar('filename');
echo "\n";
echo $Hm->Macro->getVar('column');
echo "\n";
 
$hmdate = $Hm->Macro->getVar('date');
echo( $hmdate );
?>