アプリ版:「スタンプのみでお礼する」機能のリリースについて

現在、桐Ver9SP1を使用しています。

今回、質問をお願いしましたのは一括処理の【置換 条件名=” ”】コマンドで変数に項目名を指定して実行する方法が判らなく困っています。解決策をご伝授ください。

概略説明:
数値項目:[A]、[B]、[C]、[D]、[E] とした時
1)置換条件登録 条件名=””、確認=しない、[A]=#条件選択([B]=1,22,[C]<5,33,1,999)
2)置換 条件名=””
の上記コマンドの項目[C]は固定項目ですが、項目[C]の箇所をメニュー2で事前に表にある [C] or [D] or [E] 項目を選択して変数(&STR)に格納。

次のコマンド(&STR)で実行したいのですがエラーになります。
3)置換条件登録 条件名=””、確認=しない、[A]=#条件選択([B]=1,22,&STR=5,33,1,999)
4)置換 条件名=””
エラー[KD1618:比較できないデータ型の組合わせがあります.. ,&STR=←]

他に確認した結果:  
6)置換条件登録 条件名=””、確認=しない、[A]=[C]
7)置換 条件名=””
 の実行では [A] に [C] の値が置換されますが、
  
10)代入 &STR="[C]"
11)置換条件登録 条件名=””、確認=しない、[A]=&STR
12)置換 条件名=”” 
 ではエラー発生
[KD1620:式の結果が代入または変換できないデータ型です &STR ] の表示でエラー
お願い:
3)4)行 及び 10)~12)行の部分をどのように設定、工夫すれば実行可能になるのか?
教えてください。よろしくお願いいたします。

A 回答 (3件)

> 10)代入 &STR="[C]"



こうしてみてください。

代入 &STR="C"

念のため、全角半角・大文字小文字間違いないように。

V9ヘルプ→一括処理・履歴・イベント→入門→一括処理の定義と実行→一括処理の書き方→項目名をご参照あれ。

この回答への補足

ご回答ありがとうございます。
[KD1620:式の結果が代入または変換できないデータ型です &STR ]の表示でエラーになりました。

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

補足日時:2008/01/12 16:25
    • good
    • 0

> 桐の関数の種類にも限界があって難しいのですが、エクセルのMID関数


> の(文字列)部分を変数指定で文字の取り出し可能になれば大変助かると
> 思っている次第です。

ちょっと最初の質問範囲から逸脱するけど、今回だけ。(次からは別の質問でどうぞ。)

MID(文字列,開始位置,文字数)

桐では #部分列( str , n1 【 | , n2 】 ) になります。

> 文字列 str の先頭から n1 文字目以降の n2 文字を取り出します。

3番めのパラメーター省略時は末尾まで。str・開始位置・文字数は、項目名・変数・ナマ文字列/数値なんでもOK。ただし、タイプが一致していること。項目名という場合には同一レコードのという意味です。

# 私も人から教わってきてますので、見てたらわかる範囲ではリプライつけます。
    • good
    • 0
この回答へのお礼

ryuujiok2205様

今回の自分の質問に対して沢山のアドバイス ありがとうございました。

置換条件登録 条件名="",確認=しない,[A]=[C]  の右辺[C]部分を変数指定する登録設定については

代入 &STR="C"
置換条件登録 条件名="",確認=しない,[A]=#項目属性(#項目番号(&STR),0)
置換 条件名=""

の実行で解決できました。
ご報告させて頂きます。

お礼日時:2008/01/15 18:51

> 今回の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"」の誤記でした。これじゃめちゃくちゃです。構文の区切りが「、」というのも。(^^;;

もし、特定項目によりレコードごとに書き換え制御したいとかいうのでしたら、そのときは「置換」コマンドではなくて「併合」を使います。

この回答への補足

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関数の(文字列)部分を変数指定で文字の取り出し可能になれば大変助かると思っている次第です。 長文になり失礼しました今後ともアドバイス頂ければ幸いです。

補足日時:2008/01/12 20:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!