[ 新規に投稿する ]

超基本 マクロの文法は何を参照すれば良いですか?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から進化していないので、
全く知識が無くて・・・

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

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

[ 新規に投稿する ]