last updated:2021/06/03

←前へ 次へ→ 機能別Q&A 質問番号順Q&A


[HMM0068A]

●マクロ中の演算子の意味は?

Q.
秀丸マクロに使える演算子がヘルプに書いてありますが、私はC言語を知らないので、演算子の意味がわかりません。(^^;)

A.

以下の表とマクロ例を参考にしてみてください。

演算子
算術演算子
+ 加算
- 減算
* 乗算
/ 除算(商)
% 剰余(MOD)
論理演算子
<= (右辺)は(左辺)以上
>= (右辺)は(左辺)以下
< (右辺)は(左辺)より大きい
> (右辺)は(左辺)より小さい
!= (右辺)は(左辺)と違う
== (右辺)は(左辺)と同じ
&& AND:(左辺)かつ(右辺)
|| OR:(左辺)または(右辺)
! NOT:(右辺)ではない
ビット演算子
| OR
& AND
^ XOR
  • 算術演算子の例

    秀丸エディタの数値変数は整数型なので、/(除算)は余りを切り捨てた商の値になります。

    // 除算のマクロ例(ここから)
    #a = 17;
    #b = 5;
    #c = #a / #b;
    #d = #a % #b;
    message str(#c); // 3が表示される
    message str(#d); // 2が表示される
    endmacro;
    // (ここまで)

    +(加算)は文字変数にも使えます。秀丸マクロ言語は文字変数についてはC言語よりもBASIC 等に近いと言えます。

    // 文字列加算のマクロ例(ここから)
    $a = "秀丸エディタがインストールされているフォルダは、";
    $b = hidemarudir;
    $c = $a + $b;
    message $c;
    endmacro;
    // (ここまで)
  • 論理演算子の例

    // 論理演算子のマクロ例(ここから)
    // 現在のカーソル位置の文字種を判定します。
    #c = code;
    if (#c > 0xff) {
        message "2バイト文字です";
    } else if (#c == 32) {
        message "半角スペースです";
    } else if ((#c >= 0x41) && (#c <= 0x5a)) {
        // #cが41(16進)以上、かつ#cが5a(16進)以下
        message "半角アルファベットの大文字です";
    } else {
        message "その他の1バイト文字です";
    }
    endmacro;
    // (ここまで)

    比較演算子は文字変数に対しても使うことができます。

    // 論理演算子のマクロ例2(ここから)
    // 現在のカーソル位置の文字種を判定します。
    $c = char(code);
    if ($c == " ") {
        message "半角スペースです";
    } else if (($c >= "A") && ($c <= "Z")) {
        message "半角アルファベットの大文字です";
    } else {
        message "その他の文字です";
    }
    endmacro;
    // (ここまで)
  • ビット演算子の例

    // ビット演算子の例(ここから)
    // 現在の文字コードを判定します。
    #c = charset & 63;
    if ((#c == 0) || (#c == 1)) {
        message "Shift_JISです";
    } else {
        message "Shift_JIS以外の文字コードです";
    }
    endmacro;
    // (ここまで)

←前へ 次へ→ 機能別Q&A 質問番号順Q&A