• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:桐の項目名の変数利用(一括処理))

桐の項目名の変数利用(一括処理)の解決策

このQ&Aのポイント
  • 桐Ver9SP1を使用している場合、一括処理の【置換 条件名=” ”】コマンドで変数に項目名を指定して実行する方法が判らない場合、以下の解決策をお試しください。
  • まず、項目[C]の箇所をメニュー2で事前に表にある [C] or [D] or [E] 項目を選択して変数(&STR)に格納します。
  • 次に、置換条件登録を行います。条件名を指定し、確認をしないように設定し、[A]=#条件選択([B]=1,22,&STR=5,33,1,999)という形で条件を設定します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

> 10)代入 &STR="[C]" こうしてみてください。 代入 &STR="C" 念のため、全角半角・大文字小文字間違いないように。 V9ヘルプ→一括処理・履歴・イベント→入門→一括処理の定義と実行→一括処理の書き方→項目名をご参照あれ。

yahhoo720
質問者

補足

ご回答ありがとうございます。 [KD1620:式の結果が代入または変換できないデータ型です &STR ]の表示でエラーになりました。 自分の質問で前後しますが項目名の変数格納は「代入 &STR="C"」(C:項目名)が正しいです。 例えば 10)代入 &STR="C"      11)置換条件登録 条件名=””、確認=しない、&STR=[A] 元の11)の = の左右を反対にして”置換する項目”を変数&STRで複数指定する場合は全く問題無いのですが、今回の11) =の右側(置換する値)の項目名を変数指定にする場合、つまり「”置換する値”の項目を文字列型の変数で指定した値から取り込む」、設定方法が理解できていないのです。 ちなみに[KD1620:式の結果が代入または変換できないデータ型です] のMSG自体は 11)の [A]=#数値(&STR) にすることでエラーにはなりませんが本来の置換は正常に実行しません。 取り急ぎ お礼とご報告をさせて頂きます。

その他の回答 (2)

回答No.3

> 桐の関数の種類にも限界があって難しいのですが、エクセルのMID関数 > の(文字列)部分を変数指定で文字の取り出し可能になれば大変助かると > 思っている次第です。 ちょっと最初の質問範囲から逸脱するけど、今回だけ。(次からは別の質問でどうぞ。) MID(文字列,開始位置,文字数) 桐では #部分列( str , n1 【 | , n2 】 ) になります。 > 文字列 str の先頭から n1 文字目以降の n2 文字を取り出します。 3番めのパラメーター省略時は末尾まで。str・開始位置・文字数は、項目名・変数・ナマ文字列/数値なんでもOK。ただし、タイプが一致していること。項目名という場合には同一レコードのという意味です。 # 私も人から教わってきてますので、見てたらわかる範囲ではリプライつけます。

yahhoo720
質問者

お礼

ryuujiok2205様 今回の自分の質問に対して沢山のアドバイス ありがとうございました。 置換条件登録 条件名="",確認=しない,[A]=[C]  の右辺[C]部分を変数指定する登録設定については 代入 &STR="C" 置換条件登録 条件名="",確認=しない,[A]=#項目属性(#項目番号(&STR),0) 置換 条件名="" の実行で解決できました。 ご報告させて頂きます。

回答No.2

> 今回の11) =の右側(置換する値)の項目名を変数指定にする場合、 > つまり「”置換する値”の項目を文字列型の変数で指定した値から取 > り込む」、設定方法が理解できていないのです。 「そんなことできない」が正解です。「=」には「比較」と「計算」の二つの意味合いがあります。比較でしたら、確かに右辺を変数で項目を表現することはできます。 しかし、置換の場合、リファレンスでよく確認しておいてほしいのですが、比較ではありません。 > 置換  終了状態 = <変数名>,\ > <項目名> = <計算式>,…|<項目名> = _<文字列型の変数名>,… 右辺に持ってこれるのは、値そのものか変数だけです。 何が起こっているかといえば、桐は &STRを項目名ではなく、代入された文字そのものだと思っています。で、数値項目を文字で置換しろといわれて「できるか!」と。 そもそも、項目名で置換したいというのが無理です。置換というのはある項目値を全レコード同じ値か式の計算結果で置き換えるという機能です。 置換しようとする表 [A][B][C][E][F]  1 1 1 1 1  2 2 2 2 2  3 3 3 3 3  4 4 4 4 4 置換に使おうとしている表 [V][W][X][Y][Z]  1 5 5 5 5  2 6 6 6 6  3 7 7 7 7  4 8 8 8 8 これで、[C]に[X]を代入したいとしましょう。「5」「6」「7」「8」のうちどれを入れたらいいですか? もし、1レコードしかない表を想定されていたとしても、じゃあなんかの間違いで複数レコードになったらどうしますか? 最後に記述はもう少し注意深く行ってください。 「代入 &STR="[C]"」、実は「代入 &STR="C"」の誤記でした。これじゃめちゃくちゃです。構文の区切りが「、」というのも。(^^;; もし、特定項目によりレコードごとに書き換え制御したいとかいうのでしたら、そのときは「置換」コマンドではなくて「併合」を使います。

yahhoo720
質問者

補足

ryuujiok2205様 ご回答ありがとうございます。 質問者の立場で文面上、配慮不足な箇所が多くあり、かえってお気持ちを悪くさせることになり反省しております。申し訳ありませんでした。 自分の補足文に誤解を招くような記述がありましたので租借させて頂きます。 「そんなことできない」が正解です:について ・色々、試行錯誤した結果、難しいナ!と思いつつ、藁をも掴む思いで投稿しました。お察しください。 「代入 &STR="[C]"」、実は「代入 &STR="C"」の誤記でした。これじゃめちゃくちゃです。:ついて ・前の補足に書きました『項目名の変数格納は「代入 &STR="C"」(C:項目名)が正しいです。』は自分の言葉足らずでご指摘の 10)の「代入 &STR="[C]"」が誤記でした と言うつもりではなく、「ryuujiok2205様のコメントの通りです」 と返答した次第です。 質問文の10)~12)は 駄目もとでトライした一例で、誤記ではなく自分の愚策の設定です。 最もシンプルな形式では 6)の置換条件登録 条件名=””,確認=しない,[A]=[C] になりますが、左辺([A])は &STRで指定が可能ですので、構文の<項目名> = <計算式>にあるように希望として何とか右辺([C])も変数指定する方法が考えられないか? と考えて投稿した次第です。 [A]=[C]の1:1 また、変数指定でN:1の項目名の指定が可能に対して、1:Nの設定を変数+計算式(関数)の利用で可能にできないか? の思いでおります。 最後に 「構文の区切りが「、」というのも」:ついて ・これについては「,」にするところ質問書作成時の基本的なミスで注意不足でした。 平謝りです!!  桐の関数の種類にも限界があって難しいのですが、エクセルのMID関数の(文字列)部分を変数指定で文字の取り出し可能になれば大変助かると思っている次第です。 長文になり失礼しました今後ともアドバイス頂ければ幸いです。

関連するQ&A

専門家に質問してみよう