• ベストアンサー
※ 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

  • CSVに項目(カラム名)を

    お世話になっております。 データベースにあるデータをCSV形式のファイルとしてダウンロードすべく、以下のようなソースを記述しておりますが、そのデータに項目名(カラム名)を共に表示(挿入)させようとすると、項目名が行単位で表示されてしまいます。 //$str .= "ID,E-Mail,password,氏名,郵便番号,都道府県,住所,TEL,FAX,URL\n"; $sql= "SELECT * FROM member order by id"; $res = mysql_query($sql, $con) or die("検索に失敗しました"); while($row = mysql_fetch_array($res, MYSQL_ASSOC)){ $str = $row["id"].",".$row["mail"].",".$row["pass"].","; $str .= $row["name"].",".$row["post_no"].","; $str .= $row["address1"].",".$row["address2"].","; $str .= $row["tel"].",".$row["fax"].",".$row["url"]; 1行目だけに項目名を表示させたいので、whileの始まる前にカラム名を$strに代入したのですが、考え方として他にどうすれば宜しいのでしょうか? お忙し中恐縮ですが、アドバイスのほど頂戴出来れば幸いです。宜しくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • 変数名を変数で指定するのに$_POST[

    http://oshiete1.goo.ne.jp/qa2691790.html の#1さんに,変数名を変数で指定できることを教わりました. 下記の3行目のように,です. for ($i=1;$i<=5;++$i){ if (${"var".$i}=="") { ${"errMsg".$i}=$i."が未入力"; } } ここで, (1) $_POST["form"] には「str」という文字列が入っています. (2) $Var には「10」という数値が入っています. (3) これらを結合し, どうしても $_POST["str10"] みたいな変数を作らなければならないのですが, ・<? echo $_POST["str" . $Var]; ?>では何も起こらず. ・<? echo $_POST[{"str" . $Var}]; ?>などと{}で括っても, Parse error: parse error, unexpected '{', expecting ']' in C:\temp.php on line 10. みたいなエラーになります. どういうのが正しい書き方でしょうか?

    • 締切済み
    • PHP
  • 項目名に含まれた ” を上手く表示したいのですが

    いつもお世話になっております。 今回の質問はASPとJavaScriptの組み合わせなので、本来ならばここにすべき質問ではないかもしれませんが 主にJavaScriptを使っている仕様なのでこちらに質問させていただきます。 こちらではなくASP側に記述すべき質問でしたらそのようにお返事ください。 質問です。 ASPでデータベースから項目名を全て抜き出してリンクで表示して クリックされるとOnClickイベントでその項目名を 別のウィンドウに表示させるというプログラムを作っています。 しかしこのASPでデータベースから項目名を抜き出す際に ”があるとJavaScriptエラーが発生してしまいます。 (上記とは別に、単純な例を挙げるとこうなります) var text_next = "<%=str(0)%>"; opener.document.FORM.TEXT_FIELD.value=text_next;     ↓ var text_next = """" ; (←エラー) opener.document.FOEM.TEXT_FIELD.value=text_next; あらかじめstr(0)をASP側でEncodeするとEncodeされた文字そのものが出力されてしまいます。 var text_next = "<%=Server.HTMLEncode(str(0))%>";     ↓ var text_next = "&quot;&quot;";(←エラーじゃないけど……) 私的にASPではなく、JavaScriptで解決しなければいけない問題だと思いましたが var text_next = escape(<%=str(0)%>);     ↓ var text_next = ""; これでは何も出力されないのでどうしようもありません。 そもそもこういう方法からして間違っているなどでもかまいません。 でももし何か打開策がありましたらご指導お願いいたします。

  • エクセルの項目名の並び替え

    質問します。縦に項目名 い(A1)ろ(A2)は(A3)とあり、横にそれぞれ数値(B1,B2,、、C1,C2、、)が入っています。横軸の棒グラフを作成すると、項目名が 上からC,B,Aとなってしまいます。A,B,Cに替えたいのですが、、、よろしくお願いいたします。

  • Excelの表の項目名(フィールド名)が勝手に書き換えられる

    Excelの表の項目名(フィールド名)が勝手に書き換えられる ある日突然Excelの表の項目名(フィールド名)が勝手に書き換えられるようになりました。 これまでの手順は以下です。 1.新規ブックを作成 2.項目名(フィールド名)を手入力 3.データは既存の社内のファイルから「形式を選択して貼り付け」-「値」でコピー 4.「Excelの○意 6 VBAの実践テクニック」の「株式会社や(株)等の表記を統一したい」のいコードをコ ピーしました。コードの内容は以下でした。 ----------------------------------------------------- <内容> Sub 株式会社統一() Dim 置換1 As String Dim 置換2 As String Dim 統一 As String 置換1 = "株式会社" 置換2 = "(株)" 統一 = "(株)" Cells.Replace What:=置換1, Replacement:=統一 Cells.Replace What:=置換2, Replacement:=統一 End Sub Sub 有限会社統一() Dim セル As Range Dim 置換1 As String Dim 置換2 As String Dim 統一 As String Dim 変換文字 As String 置換1 = "有限会社" 置換2 = "(有)" 統一 = "(有)" For Each セル In Selection 変換文字 = セル.Text 変換文字 = WorksheetFunction.Substitute( _ 変換文字, 置換1, 統一) 変換文字 = WorksheetFunction.Substitute( _ 変換文字, 置換2, 統一) セル.Offset(, 2).Value = 変換文字 Next End Sub ----------------------------------------------------- 症状としては例えば「G1」セルの項目名「名前」が「住所」に勝手に変わります。 変わるタイミングは  1.上記マクロを実行  2.上書き保存  3.別ウィンドウを別作業をしたり、化粧直しなどに立つなど「数分」たったあと コードが原因なのか、ウィルスか何か悪いプログラムが使用PCに入っているのかわかりません。 どなたか心あたりのある方がいらっしゃいましたらアドバイスをお願いします。<(_ _)>

  • バッチ処理でファイル名に日付を指定したい

    こんにちは。 使用OS:WindowsNT4.0 Server バッチファイルで、 c:\>dir >yymmdd.dat というコマンドを実行させたいのですが、ファイル名としてyymmddのところを実行した日付にしたいのです。 で、yymmddの値が正しくなるようにバッチ処理中に日付を取得して、その値を変数に代入しなければならないと考えるのですが、変数に日付を代入するコマンドがわかりません。 そもそも無理なことなのかもしれませんが、バッチ処理でシンプルに行えたらなと考えております。 方法はありますでしょうか? その後に予想される問題なのですが、仮に変数に日付が代入されたとしても、その変数の内容をファイル名の一部として指定できるかどうかも分かりません。 重ねて質問ですがこれが無理な場合、何か代替案はないでしょうか? 何がしたいかと言うと、ドライブの空き容量を定期的に自動で吐き出させたいのです。 ソフト(フリーも含めて)に頼る方法が有るのでしょうが、基本的にソフトの導入は敬遠したいと考えております。 宜しくお願い致します。

  • 最下層項目の前に集団項目名を付与するには?

    VBA初心者です。 以下のようにシートに文字列がある場合についてです。      A列  B列   C列        1行目  1   A     A         *集団項目* 2行目  2   A-1   A_A-1    *集団項目* 3行目  3   B     A_A-1_B   *最下層項目* 4行目  1   A1    A1         *集団項目* 5行目  3   B     A1_B       *最下層項目* 6行目  3   C     A1_C          *集団項目* 7行目  5   D     A1_C_D      *最下層項目* 8行目  3   E     A1_E        *最下層項目* ・やりたいこと  最下層項目の前に”集団項目名_”を付与したいです。C列はその結果を表しています。  VBAで実現したいです。 ・シートの初期状態  A列に階層を表す数字、B列に項目名が記載されています。C列は便宜上記載したものです。 ・階層の考え方  数値が大きくなるほど、その前の小さい数値に従属します。  例えば、3行目は2行目と1行目に従属し、2行目は1行目に従属します。 ・処理条件  ・A列が空白になるまで繰り返す。  ・A列が1の行から次に1が現れる1行前までが1つのグループという考え方です。   (1~3行目までが1つのグループ、4~8行目までがもう1つのグループ)   C列の結果には、必ずA列が1の項目名で始めます。 ・やっかいそうだと思われること  6、8行目は同じ階層ですが、6行目は7行目があるため集団項目、8行目は最下層項目です。 ・その他  例えばA列が1の場合はC列に、2の場合はD列に・・・というように列をずらして  後から結合してもよいです。  その場合、アンダーバーは不要です(後から付与できるため)  但し、1グループ内でC列には同じ文字列が設定されていることが前提となります。  (例)  A列 B列  C列 D列   E列   1  A    A    2  A-1  A  A-1   3  B    A  A-1  B 以上、よろしくお願い致します。

  • 変数を利用した「引き算」が思うように計算できません。

    変数を利用した「引き算」が思うように計算できません。 Flash 8, WIn-XP で作業しています。引き算の内容は「a-b=c」で、aはテキスト入力・変数a、bはテキスト入力・変数b、cはダイナミックテキスト・変数c をそれぞれ設定して、「=」に下記のスクリプトを書き入れました。 on (release) { a_num = Number (a); b_num = Number (b); if (a == "") { a_num = 0; c = a_num - b_num; } else if (b == "") { b_num = 0; c = a_num - b_num; } else if (a == "" && b == "") { a_num = 0; b_num = 0; c = a_num - b_num; } else { c = a_num - b_num; } } 即ち、 aが「空欄」ならば、aに「0」を表示してa-bの答えをcに、 bが「空欄」ならば、bに「0」を表示してa-bの答えをcに、 abともに「空欄」ならば、abともに「0」を表示して、cに数字の「0」を表示させたいのです。 ところがa,bを「空欄」にすると、cでの表示は「NaN」となります。(両方に数字を代入すると計算致します。一度数字を代入してスクリプトを実行し、その後その数字を消して「空欄」にした場合にも計算するようです。但し、空欄→0にはなりません。) if文の書き方が悪いのか、テキストa、テキストb、ダイナミックc、の変数の宣言が問題なのか、色々ためしても判明しません。 尚、abcは「インスタンス名」ではなくて、「変数」で処理をしたいと思っています。 ご指導下さい。

    • ベストアンサー
    • Flash
  • 「ゞ」のみ置換するにはどうすればいいでしょう?

    「ゞ」を置換したいのに、 「ゞ」の次の文字まで置換されてしまう。 Sub test() Dim str会社名 As String str会社名 = "いすゞ自動車" Debug.Print Replace(str会社名, "ゞ", "ず") End Sub を実行すると 「ゞ自」が対象になってしまうのですが、 どうしてでしょうか? 「ゞ」は一文字ですよね? Replaceで「ゞ」のみ置換するにはどうすればいいでしょう?

  • 絶対パス名からファイル名を取り出して、変数に格納するバッチ

    DOSコマンドバッチで定義した変数"fullpath"に絶対フルパス名が格納されているとします。 この変数からファイル名だけを抽出して別の変数"filenae"に格納したいのですが方法がわかりません。 1. set fullpath = "C:\test\test.c" 2. ----ここの部分をどのように処理すれば?------ 3. set filename = fullpathから抽出したファイル名 私がやってみた方法として、for文とdir /bを組み合わせてみたのですが for %a in ( dir /b c:\test\test.c ) do set filename =%a 本来dir /bを実行するとファイル名のみが表示されるのに、For文をかますと絶対フルパスでfilenameに値が格納されてしまいます。 dir /b c:\test\test.cの結果を直接filename変数に格納できれば解決するのですが、コマンド結果を変数に格納するにはFor文を使わないとだめなんですよね? なにかよい方法はないでしょうか?