フォーラムの返信を作成しました。
1 件の投稿を表示中 (合計 1 個)
- 作成者投稿
- musasabi参加者
投稿方法を間違えたため、コードが誤変換されていましたので、再度投稿します。
var startTime = new Date(); /* □マクロ名:郵便番号データ変換.jsee □バージョン:1.10 ■開くファイル 郵便番号データダウンロードから取得した住所の郵便番号(CSV形式) http://www.post.japanpost.jp/zipcode/download.html ■作成ファイル 9.町域名の内容を簡略化したファイル(ファイル名=拡張子の前に"_cnv"を追加) ■手順(例) KEN_ALL.CSVを開く 郵便番号データ変換.jseeを実行 同一ディレクトリに変換後のファイル(UTF-8)が作成される */ Redraw = false;//ウィンドウの再描画:しない document.CellMode = false;//CSV セル選択モード解除 columnN = document.GetColumns();//CSV モードで列の数を取得 if(columnN != 15){ alert( "列数エラー。列数は、" + columnN + "です。" ); Quit(); } //■使用しない列を削除 document.selection.StartOfDocument()//カーソル位置を文頭へ移動 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(4490);//郵便番号(7桁) editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(4490);//都道府県名 editor.ExecuteCommandByID(4490);//市区町村名 editor.ExecuteCommandByID(4490);//町域名 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 editor.ExecuteCommandByID(3962);//列の削除 1 //■保存するファイル名を設定 strPath = document.Path;//文書のパスを取得 aName = document.Name.split(".");//文書のファイル名を取得 sCnvPath_Name = strPath + "\\" + aName[0] + "_cnv." + aName[1]; //■UTF8で一旦保存 document.Encoding = eeEncodingUTF8;//保存時のエンコード:UTF-8 document.UnicodeSignature = false;//保存時に(BOM)を付けない document.Save( sCnvPath_Name );//文書を保存 document.close();//文書を閉じる editor.ExecuteCommandByID(4583);//最も最近閉じたファイルを開く document.CellMode = false;//CSV セル選択モード解除 //■町域の複数行に渡るかっこ書きを削除 //郵便番号の列を取得 document.selection.SetActivePoint( eePosCellLogical, 1, 1 ); editor.ExecuteCommandByID(4461); sTmp = "\r\n" + document.selection.Text; aPostalCode = new Array(); aPostalCode = sTmp.split("\r\n"); //町域の列を取得 document.selection.SetActivePoint( eePosCellLogical, 4, 1 ); editor.ExecuteCommandByID(4461); sTmp = "\r\n" + document.selection.Text; aTyou = new Array(); aTyou = sTmp.split("\r\n"); sTmp = null; //最終行から開始行へ向かって処理を行う fOkikae = false;//フラグ置き換えモード:終わり re1 = new RegExp("^\"[^(]*)\"$");//")"のみを検索 re2 = new RegExp("(^\".*)([^)]*(\")$");//"("のみを検索 for(i = aTyou.length - 2; i >= 1; i--){ if( ( aPostalCode[i] == aPostalCode[i-1] ) || ( fOkikae == 1)){//郵便番号が同じor置き換えモードの場合 document.selection.SetActivePoint( eePosCellLogical, 4, i ); if( fOkikae ){ if(aTyou[i].match(re2)){//"("のみを検索 document.SetCell( i , 4, RegExp.$1 + RegExp.$2, eeDontQuote ); fOkikae = false;//フラグ置き換えモード:終わり }else{ document.selection.SelectLine(); document.selection.Delete(1);//行削除 } } else { if(aTyou[i].match(re1)){//")"のみを検索 document.selection.SelectLine(); document.selection.Delete(1);//行削除 fOkikae = true;//フラグ置き換えモード:開始 } } } } //■町域の文字列を置き換え document.selection.SetActivePoint( eePosCellLogical, 4, 1 );//カーソル位置を設定 editor.ExecuteCommandByID(4461);//列を選択 document.selection.Replace("以下に掲載がない場合","",eeFindReplaceSelOnly | eeReplaceAll,0); document.selection.Replace("(\".*)((その他|丁目|番地|次のビルを除く|地階・階層不明|.*[、~].*|.*以上|.*以下))(\")","\\1\\3",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //★名駅ミッドランドスクエア(高層棟)(地階・階層不明) document.selection.Replace("(\".*)(高層棟)(.*\")","\\1\\2",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //★三田市の次に番地がくる場合 document.selection.Replace("\".*の次に番地がくる場合\"","\"\"",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //★土樋(1丁目「11を除く」) => 土樋(1丁目) //★切畑(長尾山「その他」) => 切畑(長尾山) document.selection.Replace("(\".*(.*)「(.*を除く|その他)」()\")","\\1\\3",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //★音江町(国見その他) => 音江町(国見) document.selection.Replace("(\".*(.*)その他()\")","\\1\\2",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //★花田町官有地(無番地を除く) //★芦田町福田(376-10を除く) //★津島町下畑地(乙を除く) document.selection.Replace("(\".*)(.*を除く)(\")","\\1\\2",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); //■町域のかっこ"("および")"を削除 document.selection.Replace("(\".*)((.*))(\")","\\1\\2\\3",eeFindReplaceSelOnly | eeReplaceAll | eeFindReplaceRegExp,0); editor.ExecuteCommandByID(4099);//ファイルを上書き保存 document.close();//文書を閉じる var endTime = new Date(); //alert((endTime – startTime)/1000 + "sec"); //alert(endTime - startTime + "ms"); alert((endTime - startTime)/1000 + "sec"); Redraw = true;//ウィンドウの再描画:する Quit();
- 作成者投稿
1 件の投稿を表示中 (合計 1 個)