function Natural_number_updown(def) { // 自然数と0の増減 作成者:いっち 2021年2月13日(土) // 選択したセル範囲に対して、マクロを実行します。 /* 【マクロ実行結果の例】 123 → mid_str1 = "" , mid_numstr = 123, mid_str2 = "" "あいう123" → mid_str1 = "あいう", mid_numstr = 123, mid_str2 = "" "123えおか" → mid_str1 = "" , mid_numstr = 123, mid_str2 = "えおか" "あいう123えおか" → mid_str1 = "あいう", mid_numstr = 123, mid_str2 = "えおか" 1 → mid_str1 = "" , mid_numstr = 1 , mid_str2 = "" "あいう1" → mid_str1 = "あいう", mid_numstr = 1 , mid_str2 = "" "あいう" → mid_str1 = "" , mid_numstr = "" , mid_str2 = "" */ function Halfwidth(num) { strnum = ""; fullwidthflg = "f"; for (i=0;i0) { str_hnum = Halfwidth(mid_numstr); fullwidthflg = str_hnum[0]; // 関数Halfwidthの判定結果を、"t"か"f"で取得する。 str_hnum = str_hnum.substring(1); befor_hnum_length = str_hnum.length; int_hnum = int(double(str_hnum)) + updownnum; if (int_hnum<0) int_hnum = 0; // 増減結果は、0以上とする。(マイナス値にはしない。) str_hnum = str(int_hnum); aftor_hnum_length = str_hnum.length; // 増減前の数字の文字数以上になるように、"0"を数字の前に付加する。 if (befor_hnum_length>aftor_hnum_length) { zero_repeat = "0".repeat(befor_hnum_length-aftor_hnum_length); } str_hnum = zero_repeat + str(int_hnum); if (fullwidthflg=="t") { // 全角の数字と半角の数字が混ざっている場合は、全ての数字を全角にする。 mid_numstr = fullwidth(str_hnum); } else { mid_numstr = str_hnum; } } [x,y] = mid_str1 + mid_numstr + mid_str2; // 動作確認用MessageBox // res = MessageBox("match_num1=" + match_num1, MB_OKCANCEL); if (res==IDCANCEL) return; // res = MessageBox("match_num2=" + match_num2, MB_OKCANCEL); if (res==IDCANCEL) return; // res = MessageBox("mid_str1=" + mid_str1 , MB_OKCANCEL); if (res==IDCANCEL) return; // res = MessageBox("mid_numstr=" + mid_numstr, MB_OKCANCEL); if (res==IDCANCEL) return; // res = MessageBox("mid_str2=" + mid_str2 , MB_OKCANCEL); if (res==IDCANCEL) return; } } } def = 1; // 増減の初期値 Natural_number_updown(def);