表を参照した、文書の一部差替え方法は?No.14838
寿方 さん 03/06/17 15:21
 

初めて書き込みします。寿方と申します

仕事で、タイトルに書いたようなことしなければならなくなり、大変困っております。
皆様のお知恵を拝借できれば幸いです。

さて、一部差替えをしたい文書とは、とあるアプリケーションのマクロプログラムで
す。
100行ほどのプログラム中にパラメータが20箇所ほどあります。
このパラメータを、別ファイルの表に沿って書き換え、一気に多くの件数を処理した
いのです。
問題は処理件数で、ざっと数えて2000件を少し下回るぐらいです。
手作業ではとてもやっていられません。

何か良い方法はないでしょうか?


[ ]
RE:14838 表を参照した、文書の一部差替えNo.14839
ENCODINGSHIFTJIS さん 03/06/17 15:51
 

参考のマクロライブラリ
http://hide.maruo.co.jp/lib/macro/index.html
複数ファイルにマクロ実行 Ver.1.03
GrepReplace.mac
http://hide.maruo.co.jp/lib/macro/index5.html
フォルダ内ファイル一括置換マクロ Ver.1.06

さがすと、一括全置換はいろいろあります。
=================
処理条件が不足です
パラメータ :文字数、文字種のパターンは。
箇所  :そこを特定する論理は? プログラム可能か
別ファイルの表に沿って : 表項目数とか、Sort済みか、
書き換えのようすは? 元の文字列をどのように変形するか、単純全置換か?
などなど
30行程度のサンプルは作れますか?

[ ]
RE:14839 表を参照した、文書の一部差替えNo.14859
寿方 さん 03/06/18 16:42
 
ENCODING SHIFT JISさん、お世話になります。

>処理条件が不足です
>パラメータ :文字数、文字種のパターンは。

アルファベット大文字、数字、記号(-,/,etc)、全て半角です。

>箇所  :そこを特定する論理は? プログラム可能か

差し込む箇所は、検索可能なように置き換えます。
例:<dataA>,<nameA>

>別ファイルの表に沿って : 表項目数とか、Sort済みか、

表はExcelで作りました。必要に応じて加工はできるので、
心配はしていません。

>30行程度のサンプルは作れますか?

マクロとデータの一部を、加工してまとめてみました。
================================
;INIT
   (4,37,0)=/<nameA>/
  ;LDRAW
  ;RECT .WD <dataA>    .HT <dataB>    :
  ;LPTYP
  ;SERCH-PT .RAD <dataA>  : 0 0 , @GO
  ;LPTYP
  ;SAVE @WIN X -<dataC> Y -<dataD> , X <dataC> Y <dataD> , @GO
================================
 nameA,dataA,dataB,dataC,dataD
 X020-100,0.20,1,0.10,0.5
 X020-110,0.20,1.1,0.10,0.55
 X020-120,0.20,1.2,0.10,0.6
 X020-130,0.20,1.3,0.10,0.65
 X020-140,0.20,1.4,0.10,0.7
================================

[ ]
RE:14859 表を参照した、文書の一部差替えNo.14863
ENCODINGSHIFTJIS さん 03/06/18 17:16
 
MS-Wordの「差込印刷(定型書簡)新規文書作成」にぴったりの形ですね、
Wordでもできます。
近くにワープロを使っている人がいれば直ぐです。
(ワープロ検定にも出題されるから、できなきゃおかしい)
展開結果を、テキスト形式(改行)で保存すると完了です

メニュー>挿入>フィールド>フィールドの種類・差込印刷>
フィールドの名前・Merge Field>MERGEFIELD nameA
とかで、差込点を設定してゆきます。
以下、メニュー>ツール>差込印刷ヘルパー の指示にしたがって・・・

マクロライブラリの中では「テンプレートエンジン」型の動作をするのは
直ぐに見つかりませんでした。エディタはそういう使い方
が少ないし、できる人はプログラムを書いてしまうから。

[ ]
RE:14863 表を参照した、文書の一部差替えNo.14869
寿方 さん 03/06/19 10:12
 
>MS-Wordの「差込印刷(定型書簡)新規文書作成」にぴったりの形ですね、
>Wordでもできます。

やはりそう思われますか?

>近くにワープロを使っている人がいれば直ぐです。
>(ワープロ検定にも出題されるから、できなきゃおかしい)
>展開結果を、テキスト形式(改行)で保存すると完了です

一応、私のパソコンにも入ってます、Word。
ただ、Excelのほうが使う機会が多くて、Wordのほうはあまり…。

>以下、メニュー>ツール>差込印刷ヘルパー の指示にしたがって・・・

こいつがよく分らなかったんです。
Helpを見ましたが、イマイチ理解できなくて。

>直ぐに見つかりませんでした。エディタはそういう使い方
>が少ないし、できる人はプログラムを書いてしまうから。

やはりそうなのですか。はあ(タメイキ)。
しかたありません。Wordでもう少しがんばってみます。

お騒がせして、申し訳ありませんでした。

[ ]
RE:14869 表を参照した、文書の一部差替えNo.14874
ENCODINGSHIFTJIS さん 03/06/19 12:59
 
Wordの解説本を立ち読みするとわかります、必修科目です。
マージプリントはパソコン誕生以前からあります

UNIXではスクリプトでも作ります。
CMD.EXE(コマンドプロンプト)に以下を 編集>貼り付け して実行するとわかるかも
/V:ON の起動で「遅延評価」をONにしておきます。
コマンドを読めるとファイル分割出力もすぐでしょう

あらためて、Windowsのコマンドの風変わりさを実感の巻、でした
=================
ECHO @set nameA=%1>makee.cmd
ECHO @set dataA=%2>>makee.cmd
ECHO @set dataB=%3>>makee.cmd
ECHO @set dataC=%4>>makee.cmd
ECHO @set dataD=%5>>makee.cmd
ECHO @ECHO ;INIT>>makee.cmd
ECHO @ECHO   (4,37,0)=/%nameA%/>>makee.cmd
ECHO @ECHO  ;LDRAW>>makee.cmd
ECHO @ECHO  ;RECT .WD %dataA%    .HT %dataB%    :>>makee.cmd
ECHO @ECHO  ;LPTYP>>makee.cmd
ECHO @ECHO  ;SERCH-PT .RAD %dataA%  : 0 0 , @GO>>makee.cmd
ECHO @ECHO  ;LPTYP>>makee.cmd
ECHO @ECHO  ;SAVE @WIN X -%dataC% Y -%dataD% , X %dataC% Y %dataD% , @GO>>ma
kee.cmd
REM
ECHO nameA,dataA,dataB,dataC,dataD >DB.CSV
ECHO X020-100,0.20,1,0.10,0.5>>DB.CSV
ECHO X020-110,0.20,1.1,0.10,0.55>>DB.CSV
ECHO X020-120,0.20,1.2,0.10,0.6>>DB.CSV
ECHO X020-130,0.20,1.3,0.10,0.65>>DB.CSV
ECHO X020-140,0.20,1.4,0.10,0.7>>DB.CSV
REM
FOR /F  %L in (DB.CSV) DO @makee.cmd !%L!
================

[ ]