←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次

# [HMM0068A]

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

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

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

  演算子
  算術演算子 |
  + | 加算
  - | 減算
  * | 乗算
  / | 除算（商）
  % | 剰余(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;
        // （ここまで）

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

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

  - 論理演算子の例

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

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

        // 論理演算子のマクロ例２（ここから）
        // 現在のカーソル位置の文字種を判定します。
        $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;
        // （ここまで）

←前へ 次へ→
機能別Ｑ＆Ａ 質問番号順Ｑ＆Ａ 目次