[あすかぜ・ねっと]あすかぜ・ねっと自作ソフトCassava > サポート掲示板

Cassava Editor サポート掲示板

スレッド一覧に戻る返信

[844] あるいは

ケンケン [2024/06/07 14:52:05]



x = 24;
for (y = 2; y <= Bottom; y++) {
   if ( [x,y] == "" && pos([19,y], "北海道") > 0) {
     [x,y] = asatte;
   }
}


以下のように条件を変更したいです。

pos([19,y]は北海道、鹿児島、宮崎 いずれか 含む場合
 [x,y] = asatte;



よろしくお願いします

Re: [844] あるいは

あすかぜ [2024/06/07 21:27:39]

「あるいは」は「||」という記号を使って表します。

  if ([x,y] == "" && (pos([19,y], "北海道") > 0 || pos([19,y], "鹿児島") > 0 || pos([19,y], "宮崎") > 0)) {
    [x,y] = asatte;
  }

また、ご質問のように「いずれかを含む場合」という条件であれば、正規表現を使って次のように書くこともできます。

  if ([x,y] == "" && [19,y].search("北海道|鹿児島|宮崎") >= 0) {
    [x,y] = asatte;
  }

試してみてください。

Re: [844] あるいは

ケンケン [2024/06/08 15:39:36]

x = 24;
for (y = 2; y <= Bottom; y++) {
   if ([x,y] == "" && [19,y].search("北海道|鹿児島県|熊本県|宮崎県") >= 0) {
    [x,y] = 2;
  }


熊本県 伊勢崎市 西久保町二丁目xxxx-x 080-xxxx-xxxx 宅配便(RSL) 2
宮崎県 横浜市鶴見区 獅子ケ谷x-xx-x-x 090-xxxx-xxxx 宅配便(RSL)
鹿児島県 桜井市 阿部xxx                         080-xxxx-xxxx 宅配便(RSL)  
北海道 下呂市 萩原町四美xxx                 0576-xx-xxxx 宅配便(RSL)




熊本県の行だけ変更しました。最後の時にcsv中断しましたのメッセージが出ました。


よろしくお願いします。

Re: [844] あるいは

あすかぜ [2024/06/08 20:16:36]

私の環境ではそのマクロで特に問題なく動作するようです。
念のため、動作確認した cms ファイルをアップロードしておきます。
https://www.asukaze.net/soft/cassava/macro/asukaze/bbs844_20240608.cms

貼り付けていただいたマクロには for 文を閉じる「}」がないようですが、
for 文の中で「y = 2;」など y の値を戻してしまう処理が入っていないかご確認をお願いします。

よろしくお願いします。

スレッド一覧に戻る返信