超基本 マクロの文法は何を参照すれば良No.10353
hutec さん 24/05/17 16:02
 
識者の皆様、ご教示ください。

基本的すぎてどこで質問したら良いかも判らないので、
とりあえずここにお邪魔します。

文法はCとかの書籍を参照すれば大体同じですか?

下記の様な事をやりたかったのですが、ヘルプを見ても判りませんでした。マクロは
どの言語のマニュアルを参照すれば近いでしょうか?

配列の初期化

$string[] = { "aa","bb" };

配列の要素数

while ( i < $string[] ) {
};


どうぞ、宜しくお願いします。

[ ]
RE:10353 超基本 マクロの文法は何を参照No.10354
Iranoan さん 24/05/17 16:20
 
hutec さんこんにちは Iranoan です
> 文法はCとかの書籍を参照すれば大体同じですか?
あくまで大体ですが同じです

> 下記の様な事をやりたかったのですが、ヘルプを見ても判りませんでした。マクロ
>はどの言語のマニュアルを参照すれば近いでしょうか?
マクロはマクロ・ヘルプ (hidemac_html.chm) や秀丸エディタ マクロ言語(入門
用)ヘルプ (be_hidemac.chm) からはじめれば良いかと
ウェブだとそれぞれ次のページです
https://help.maruo.co.jp/hidemac/html/010_Intro.html
https://help.maruo.co.jp/be_hidemac/html/01_Index.html


> $string[] = { "aa","bb" };
このように一度に初期化が出来ません
そもそも C でも変数宣言ではこれが出来ますが、それ以外の箇所でこのような代入
は出来ませんよね
そして秀丸マクロでは変数宣言がありませんので

> 配列の要素数
こちらは配列要素に代入するときに、別途カウントしておくしかないと思います

[ ]
RE:10353 超基本 マクロの文法は何を参照No.10355
秀丸担当 さん 24/05/17 16:24
 
秀丸マクロの説明は、[マクロ]→[マクロヘルプ]のところにあります。
秀丸マクロは、ずっと昔からC言語ライクという謳い文句がありますが、最近の感覚
では全然C言語ライクではなくなってしまいました。
C言語の感覚でいくのであれば、JavaScriptのほうが近いです。

秀丸マクロでは、配列の初期化はただ代入するだけです。
配列は初めて使うとき要素は全部""または0で、要素数という概念はありません。
whileはあってもforがなく、自作関数もサブルーチンという呼び方でです。
文を呼ぶときは()を付けなかったり、関数と呼んでいるものは()を付けたりです。
例:
$string[0] = "aa";
$string[1] = "bb";
#c=2;

#i = 0;
while( #i < #c ){
  message $string[#i];
  #i = #i + 1;
}

endmacro;


V9.19以降では、js{}でくくるとJavaScriptで書くことができます。
詳細は[マクロ]→[マクロヘルプ]の一番下のJavaScript対応のところにあります。
普通にforもあって、自作関数や秀丸エディタの文も関数も、全部()で呼びます。
JavaScriptなのでWeb上にある情報でもだいたい同じです。
例:
js{
  //配列の初期化
  string = ["aa","bb"];

  //配列の要素数
  i = 0;
  while( i < string.length ){
    message(string[i]);
    i ++;
  }
}

[ ]
RE:10354 超基本 マクロの文法は何を参照No.10356
hutec さん 24/05/17 16:39
 
Iranoan さま、アドバイス有り難うございます。

>> 配列の要素数
>こちらは配列要素に代入するときに、別途カウントしておくしかないと思います

現状、公開マクロを調べて時間を消費してしまっています。この作業で習得出来る知
識もありますが、なんせ納期が迫ってて、早めに仕上げたいと思っています。出来る
出来ないの判断を速くしたいのですが、何か良いアドバイスはございますか?
無いですよね・・・。

また、宜しくお願いします。

[ ]
RE:10356 超基本 マクロの文法は何を参照No.10357
こみやんま さん 24/05/17 17:09
 
>現状、公開マクロを調べて時間を消費してしまっています。この作業で習得出来る
>知識もありますが、なんせ納期が迫ってて、早めに仕上げたいと思っています。出
>来る出来ないの判断を速くしたいのですが、何か良いアドバイスはございますか?
>無いですよね・・・。


◆秀丸マクロなのかJavaScriptなのか
どういったものなのか、作成したいものの概要までだせるのであれば、
「秀丸マクロ」でやるべきか「JavaScript(ただし最低秀丸でもv9.19必要)」でやる
べきか、
どちかが良いかはある程度正確に判断できるかと。

細かな仕様までだせるのであれば、簡単なものなら
おそらく当日か翌日までにはマクロ内容の投稿があるかとw


◆他の言語が使えるなら、それで書いてしまってもよい
秀丸から外部プログラムを呼び出して、そのプログラムで処理して、結果を秀丸で受
け取るとかでもありです。
(極端に複雑であれば、こちらの方が汎用性も高く、実装時間も短いでしょう)


◆秀丸のバージョンが古ければ古いほどしんどい
バージョンの縛りがあり、それが古ければ、それだけ実装がしんどくなっていく傾向
があります。
(最新版だと10行で終わることが、平然と300行とか余裕でありえます)

[ ]
RE:10357 超基本 マクロの文法は何を参照No.10358
hutec さん 24/05/17 17:25
 
こみやんま 様、アドバイス有り難うございます。
先ほど、秀丸先生からもアドバイス頂戴しましたが、
javaでも出来るんですね。(java知りませんが)

負け感があるので、出来れば秀丸マクロで進めたいですが、
臨機応変頑張ってみます。


>◆他の言語が使えるなら、それで書いてしまってもよい
>秀丸から外部プログラムを呼び出して、そのプログラムで処理して、結果を秀丸で
>受け取るとかでもありです。

vb6,vb.netのリソースは沢山あるので、そのロードモジュール(〜.exe)を呼んだり出
来るのでしょうか?

ちょい、勉強してみます。

[ ]
RE:10355 超基本 マクロの文法は何を参照No.10359
hutec さん 24/05/17 17:29
 
秀丸先生、いつもお世話になっております&有り難うございます。
最近、レベルの低い質問で申し訳なく思っています。

考え方が判ったので、とりあえず1歩前進できました。

また、宜しくお願いします。

[ ]
RE:10358 超基本 マクロの文法は何を参照No.10360
でるもんたいいじま さん 24/05/17 19:45
 
横から失礼します。

> 先ほど、秀丸先生からもアドバイス頂戴しましたが、
> javaでも出来るんですね。(java知りませんが)

一つだけご指摘を。
「Java」と「JavaScript」は全く別物ですよ。
この紛らわしい名前の歴史的経緯については、検索すれば詳しい情報が色々出てくる
と思いますのでここでは省きます。

で、秀丸で使えるのは「Java」ではなく「JavaScript」のほうです。
HTMLの中に
<script language=JavaScript>
....
</script>
のように組み込んで使うほうのやつです。

実例については
https://www.maruo.co.jp/hidesoft/4/x10336_.html
のスレッドを見ていただくのが分かりやすいと思います。

[ ]
RE:10360 超基本 マクロの文法は何を参照No.10361
hutec さん 24/05/18 11:43
 
でるもんたいいじま様

いつもお世話になっております。
>「Java」と「JavaScript」は全く別物ですよ。
はい、息子にも言われました。
hp作成していた時に、HTMLから進化していないので、
全く知識が無くて・・・

教えていただいたリンク参照させていただきました。

今後ともご指導宜しくお願いします。

[ ]