過去の桐井戸端BBS (桐ver.9)
18373 イベントでウインドウ会話コマンドを使おうとするとエラーになるがそれに代わるコマンドはありますか はちがめ 2003/01/02-22:27
桐V9 WIN2Kです。
一括処理をイベント処理に移行しています。

あらかじめmulフォームを使って
9個の選択項目を持つ標準的な択一式のフォームを作成し、
項目選択の必要の都度、ウインドウ作成で開き、
単一化絞り込みをしたデータの内容で、フォームの体裁を変更しています。
その上で、ウインドウ会話コマンドで表示させて項目を選択しています。
これを、イベントで実行しようとした時、「フォーム上の・・・」のエラーがでて使用できません。
いったんウインドウ終了して、フォーム呼出しを実行しても変更した内容を引き継げません。
メソッド呼び出しを駆使してということもありそうかなと思いますが、
簡単に会話モードに入る方法はないものかと思っています。

お正月おくつろぎのところ申し訳ありませんが、ご助言よろしくお願いします。

18374 ウインドウ会話に代わるコマンド(イベント処理) はちがめ 2003/01/02-22:35
記事番号18373へのコメント
手続きを追加送信します。(1)
なお、下記コードの引数部分は移行途中のため正常動作確認未済。
********************************************************************
手続き定義開始 ダイアログ選択択一( 文字列 &処理項目,文字列 &未定義時文字列,
文字列 &標題,文字列 &メッセージ\
                  ,参照 整数 &p択一回答番号,参照 文字列 &p
択一回答文字 )
 変数宣言 固有,整数{&択一選択番号}
 変数宣言 自動,整数{&i,&項目数,&択一選択}
 変数宣言 自動,数値{&ウインドウ高さ,&フォーム幅,&明細高さ,&タイトル高さ,&フッタ高さ,&グループBOX高さ,&グループBOX幅=1,&決定Xpt,&中止Xpt}
 変数宣言 自動,数値{&ボタンYpt[9],&項目Ypt[9],&項目Wpt[9]}
 変数宣言 自動,文字列{&ボタン名[9],&d項目名[9],&項目内容[9]}
 変数宣言 自動,文字列{&ボタン}

*** 格納 ****************
 代入 &項目数=&選択件数                /* 先に単一化絞り込み済み
 ジャンプ 行番号=先頭
 繰り返し &i=1,9
  if(&i<=&項目数)
    代入 &ボタンYpt[&i]=28+20*(&i-1)
    代入 &項目Ypt[&i] =25+20*(&i-1)
    代入 &項目内容[&i] =#cond(#項目属性(#項目番号(&処理項目),0),#項目属
性(#項目番号(&処理項目),0),1,&未定義時文字列)
    代入 &項目Wpt[&i] =#桁数(&項目内容[&i])*5+10
    代入 &グループBOX幅=#大(#桁数(&項目内容[&i]),&グループBOX幅)
   else
    代入 &ボタンYpt[&i]=20
    代入 &項目Ypt[&i] =20
    代入 &項目Wpt[&i] =20
  end
  代入 &ボタン名[&i] ="トグルボタン"+#str(&i)
  代入 &d項目名[&i]  ="a項目"+#str(&i)
  ジャンプ 行番号=次行
 繰り返し終了
 代入 &グループBOX幅 =&グループBOX幅*5+50
 代入 &グループBOX幅 =#大(&グループBOX幅,#桁数(&メッセージ)*5+20)
 代入 &フォーム幅   =&グループBOX幅+30
 代入 &明細高さ    =&項目数*20+25
 代入 &グループBOX高さ=&項目数*20+5
 代入 &決定Xpt    =&グループBOX幅/2-50
 代入 &中止Xpt    =&決定Xpt+60


18375 Re:ウインドウ会話に代わるコマンド(イベント処理) はちがめ 2003/01/02-22:36
記事番号18373へのコメント
手続き追加送信 (2/2)

 ウィンドウ作成 "選択択一.wfm",ハンドル=&択一選択
*** 取得 ***
* オブジェクト操作 ハンドル=&択一選択,&フッタ高さ=@フォームフッタ部.セクションの高さ
  &タイトル高さ=20
  &フッタ高さ =30
*** 設定 ************
 代入 &ウインドウ高さ=&明細高さ+&タイトル高さ+&フッタ高さ
 オブジェクト操作 ハンドル=&択一選択,@決定.始点X=#str(&決定Xpt)
 オブジェクト操作 ハンドル=&択一選択,@中止.始点X=#str(&中止Xpt)
 ジャンプ 行番号=先頭
 繰り返し &i=1,9
   オブジェクト操作 ハンドル=&択一選択,&ボタン名[&i]{始点Y=#str(&ボタンYpt[&i])}
   オブジェクト操作 ハンドル=&択一選択,&d項目名[&i]{始点Y=#str(&項目Ypt[&i]),幅=#str(&項目Wpt[&i])}
   if(&i<=&項目数)
     オブジェクト操作 ハンドル=&択一選択,&d項目名[&i].標題=&項目内容[&i]
     オブジェクト操作 ハンドル=&択一選択,&ボタン名[&i].画面表示=する
     オブジェクト操作 ハンドル=&択一選択,&d項目名[&i].画面表示=する
    else
     オブジェクト操作 ハンドル=&択一選択,&ボタン名[&i].画面表示=しない
     オブジェクト操作 ハンドル=&択一選択,&d項目名[&i].画面表示=しない
   end
   ジャンプ 行番号=次行
 繰り返し終了
 オブジェクト操作 ハンドル=&択一選択,@フォーム.フォームの幅=#str(&フォーム幅)
 オブジェクト操作 ハンドル=&択一選択,@グループボックス{幅=#str(&グループBOX幅),高さ=#str(&グループBOX高さ)}
 オブジェクト操作 ハンドル=&択一選択,@フォーム明細部.セクションの高さ=#str(&明細高さ)
 オブジェクト操作 ハンドル=&択一選択,@aメッセージ.標題=&メッセージ
 ウィンドウ位置 設定,&択一選択,位置=(50,50),サイズ=(#PointToDot(&フォーム幅),#PointToDot(&ウインドウ高さ))

*** 表示 ************
 繰り返し
*   ウインドウ会話 &択一選択,モーダル=する
*  フォーム呼び出し "選択択一.wfm", 編集表=する, ボタン=&ボタン, 終了状態=&pリターン
   if(&ボタン=決定)
     if(&選択番号)
       代入 &p択一回答番号=&選択番号
       代入 &p択一回答文字=&項目内容[&選択番号]
      else
       繰り返し継続
     end
    else
      代入 &p択一回答番号=0
      代入 &p択一回答文字=""
   end
   繰り返し中止
 繰り返し終了
 ウインドウ終了 &択一選択
手続き定義終了


18378 Re:ウインドウ会話に代わるコマンド(イベント処理) 佐田 守弘 2003/01/03-23:44
記事番号18373へのコメント
はちがめさん
書かれております質問の文章と、コマンドだけでは、状況の把握が巧くできません。
コマンドは、かなり変数を多用した書き方を去れているので、作った人以外には理解が難しいかと想います。

そこで、
 >9個の選択項目を持つ標準的な択一式のフォームを作成し、
 >項目選択の必要の都度、ウインドウ作成で開き、
 >単一化絞り込みをしたデータの内容で、フォームの体裁を変更しています。
 >その上で、ウインドウ会話コマンドで表示させて項目を選択しています。

の部分について、具体的に何をどうしたいのかを詳しくお知らせ下さい。
今までの一括処理型のコマンドとは違う形になるかと想いますが、何らかのアドバイスが可能かと想います。

参考までに書かれている内容についてのコメントを差せて頂きます。
●イベント主体のシステムへの移行
私はこの判断は正解だと思っております。
ただし、従来の古典一括形式から、イベント主体の形式に移行するには、
システムの組み方の考え方について頭を大きく切り換える必要があります。
どうやらいろいろな方の質問や相談等を拝見して来ました結果として、
この頭の切替でつまづいている方が多い様に見受けます。

そして、これを乗り越えてしまうと、多くの場合、古典一括型よりも楽にシステムが組めるようになります。
(一部には古典一括の方が簡単な場合もありますが)

●全体的な考え方
冒頭に引用した部分で何をしたいのかが分からないので、あるいは外しているかも知れませんが、一般論として述べておきます。
まず、
 >9個の選択項目を持つ標準的な択一式のフォーム
ですが、これがおそらくメインとなるフォームなのでしょう。
これは一括処理から開くのではなく、フォームそのものを直接開きます。
この点が古典一括型と異なります。
そしてある項目で絞り込みを行い、その結果を別の形式で表示したいとしたら、2つの方法があります。
1つは、良く使われるフォーム呼出しを行って、同じ表をモーダルフォームとして開いて編集する方法です。
もう1つは、同じ表を編集するのであれば、フォーム切り換えでしようするフォームを切り換えてしまう方法です。
どちらが良いかは、状況で判断する必要があります。
そして、どちらの場合でも、現在編集中の表の状態の引継は、可能なはずです。

佐田守弘(KS-00119)
18383 Re:ウインドウ会話に代わるコマンド(イベント処理) はちがめ 2003/01/04-11:59
記事番号18378へのコメント
佐田 守弘さん、早速のコメントありがとうございます。
返答が遅くなって申し訳ありません。
>書かれております質問の文章と、コマンドだけでは、・・・
本当に文章で意を伝えるということは難しいですね。
>・・・この頭の切替で躓いている方が多い様に見受けます。
おっしゃるとおりです。かなり頭が混乱しています。
>・・・詳しくお知らせ下さい。
1したいこと
項目[銀行名]に銀行名が入っています。銀行数は10行前後。
ある銀行名で絞り込みを行います。<これが実現したい処理です。

2方法
対象表を持たないフォームを事前に定義。
 グループボックス内に9個のオプションボタン(択一)を配置。
 対応するテキストボックスは空白。
表を開き項目[銀行名]を単一化で絞り込む。
** 今回の一般手続きを呼び出す
絞り込まれた[銀行名]の銀行名、銀行数等を変数にセット。
事前に定義したフォームを開き、
テキストボックスに銀行名を表示、
トグル釦の個数を銀行数の数だけ表示、
フォームのサイズを適したサイズに変更する。
会話処理で一つの銀行を選択する。<ここで躓いています。>
選択した銀行名を&p択一回答文字にセットして呼出元に返す。
フォームを閉じる
** 手続き終了
表の単一化絞り込みを解除
選択した銀行名で絞り込む。
以上

上の処理は一例で、その他様々なパターンで利用できるよう、変数で対応しています。
一括処理では、ウインドウ会話コマンドで正常に動作していました。
イベント処理で、これを実現する方法が見つかりません。
移行途中のため、全体的なデバッグは未済です。
この後、返答が遅れるかも知れませんが、よろしくお願いします。

18384 Re:ウインドウ会話に代わるコマンド(イベント処理) 佐田 守弘 2003/01/04-15:28
記事番号18383へのコメント
はちがめさん
状況の全てを理解できた訳ではないのですが、以下の様な解釈を前提にコメントします。
・銀行振込による支払いや、入金等の処理を行うらしい。
・振込処理や入金確認等の各種処理の中で、指定した銀行ごとに、 表データの絞り込みを行いたい。

●メインメニューの画面
各種処理を選ぶメインメニューは、対象表のないフォームで作ります。
そして起動にはこのフォームを直接開きます。
メインメニューには、コマンドボタンでメニュー項目を作ります。
例えば、「銀行別振込データ作成」、「銀行別入金確認」といったメニューを作る訳です。
作り方については、桐ver.8で作成したものですが、私の以下の解説とサンプルを参考にして見て下さい。
http://www.ne.jp/asahi/m.sada/kiri/GUIDE/GUIDE_TOP.html

●銀行の指定
銀行数が決まっているか、増加する可能性があるかによって、作り方が多少変わります。
銀行数が決まっているなら、銀行名毎のコマンドボタンを作った方が使いやすいでしょう。
グループボックスとトグルボタンで作るより、操作しやすいと思います。
銀行数が変化するのだとしたら、私なら次の様にします。
@銀行名を選ぶフォームを作る。
 銀行名をリスト表示する表形式のフォームです。対象表には銀行名
 リストの表を作っておくか、振込や入金データの表から銀行名で
 単一化したものを対象表にしても構いません。
 この場合にはフォームの表の開始条件で単一化を行います。
 ただし、単一化の処理時間が掛りますから、定期的に単一化した
 データを銀行名リストとして書き出しておいた方が便利です。
A銀行名を選ぶ
 桐ver.5にあった処理行指定コマンドがなくなりました。
 そこで、機能キー入力やマウスクリックイベント等を使い、
 Enterキーの入力を拾います。そしてその時の銀行名の項目値を
 変数に代入してから、フォームを閉じれば目的を達します。
Bフォームの閉じ方
 イベントのコマンドでフォームを閉じる事はできません。
 そこで、フォーム上に「閉じる」機能を設定したボタンを作っておき
 メソッド呼び出しコマンドでこの閉じるボタンを実行する事によって
 自分自身のフォームを閉じます。
 この「閉じる」は、マウス操作で使わないなら、非表示にしておいて構いません。

以上は、最初はちょっとと惑うかも知れませんが、馴れてくると定石としてパターン化できる方法です。

佐田守弘(KS-00119)
18388 Re:ウインドウ会話に代わるコマンド(イベント処理) はちがめ 2003/01/05-11:34
記事番号18384へのコメント
佐田 守弘さん、丁寧なコメントありがとうございます。
こちらが実現したい処理は、先生ご理解のとおりです。
入金処理に於いて、処理すべき銀行を絞り込みたい。
その絞り込むべき銀行名を取得したいということでした。
処理済みの銀行名は次回の選択リストには表示させない。
つまり、選択リストの銀行名の表示は暫時減少していく。以上です。
最初に、したいこと(目的)を書くべきでした。
文章で意を伝えることは本当に難しい。
先生ご指導の方法で、上記目的は達成できそうです。有難うございます。

ただ、一般論として引き続き質問させて頂きます。
あらかじめ作成したフォームを開きます。編集対象表は今回はありません。
フォームを目的にあわせて、体裁(定義情報)を変更します。
この後このフォームに対し、会話処理を実行したい。
この処理をサブルーチンとしてメインルーチンから呼び出します。

以上の処理を、一括処理では「ウインドウ作成」で開き、
一定の処理を施した後「ウインドウ会話」で会話処理を実行していました。
順調に動作していましたが、イベント処理では、
「KU1048:フォームに組み込まれている状態ではこのコマンドは使用できません 」のエラーが発生します。
そこで、この「ウインドウ会話」に代わるコマンドあるいは方法はないだろうかということです。

上記方法がないとすれば、先生ご指導の方法で対処したいと思いますが、
もし何らかの方法があるならばご教授をお願いしたいと思います。
よろしくお願いします。

18394 一括kとイベント-ここが頭の切り替え所です 佐田 守弘 2003/01/06-01:15
記事番号18388へのコメント
はちがめさん
重要なところに気がつかれました。実はタイトルにも書いた通り、
ここが一括からイベントへの頭の切り替え所です。

●基礎知識として:一括とイベント
一括処理は、予め決めたプログラム手順で動作し、
時折、会話処理コマンドを使って会話処理のモードに入ります。
そして会話処理が終わったら、元の一括に戻ります。

これに対して、イベントで組む場合には、全体を制御しているプログラムに相当する一括処理は、(原則として)ありません。
イベントとは、フォーム画面で会話処理を行う時の、バックで動作している陰のプログラムなのです。

例えばメニュー画面になっているフォームからメニューのコマンドボタンを選んだ時、
サブルーチン的にそのコマンドに関連づけたイベントハンドラ(イベントで実行する一括)ないしは、
一般手続きが実行されます。
ですから、もともと会話処理ですから、一括処理の様にウインドウ会話は存在しません。

ウインドウ作成でウインドウを開き、ウインドウ会話で一括処理を抜けて会話処理に入る必要はなく、
単に別のフォームを呼び出すだけで目的が達成される訳です。

以上の意味を理解頂ければ、イベントハンドラの中でウインドウ会話コマンドが使えないのが当たり前である事は、
御理解頂けると思います。

さて、御質問のウインドウ作成に代わる機能ですが、
「フォーム呼び出し」コマンドで新しいフォームを呼び出すか、
コマンドボタンの機能名で「開く」「フォームファイル名」で開くかを行います。
コマンドボタンの機能名で開く場合でも、メソッド呼び出しコマンドでこのボタンを実行すれば、
コマンドの中で新しいフォームを開けます。

●文章にはかいてありませんが
さて、なぜウインドウ会話コマンドに拘ろうとしているのかは、
うすうす分からないでもありません。それは、以前にこの方法で行っていた
プログラムの流れが、イベント主体のプログラムでは実現できそうに
ない部分があるからではないでしょうか。

実は私にもその経験があります。
桐ver.5の時と同じ様な手順を実現しようとすると、
必ずやこれに打ち当ります。だから、頭を切り替えなければならないのです。

例えば、1つずつ確認の手順を踏み、最後に確認メッセージを出して
OKなら実行のステップに進む、NOなら1ステップ戻る。
確かMS-DOS時代はそういったプログラムの流れだったと思います。
この様な操作イメージのプログラムは、イベント主体の組み方では、
かなり難しいし、かえって複雑になり過ぎます。
ウインドウでは、必要な設定のダイアログを表示し、
ここに必要な設定を行ってからOKボタンか中止ボタンをおしますね。

そういった操作性の違いも含めて、システムを作る時の頭を切り替える必要がでてきます。

もちろん、桐ver.9でも古典一括処理風に一括処理主体のプログラムを作る事は可能です。
でも、大きな流れはイベント主体に作るのが良いと考えます。

佐田守弘(KS-00119)
18398 Re:一括kとイベント-ここが頭の切り替え所です はちがめ 2003/01/06-09:25
記事番号18394へのコメント
佐田 守弘さん、コメントありがとうございます。
>ですから、もともと会話処理ですから、
>一括処理の様にウインドウ会話は存在しません。
イベント処理に移行中といっても、その内実はいままでの一括処理のプログラムを
切り刻んでイベントファイルに貼り付け、フォームの釦の機能名「手続き実行」で呼び出す。
そして、動かない部分をイベントで動作するコマンドに書き換えていく。
そのような作業を行っています。
まさに一括処理のサブルーチンの発想ですね。
「もともと会話処理」やっと頭の切替が少し進みそうです。
何となく対策の方向が見えてきましたので、後は何とか頑張ってみます。

ついでといっては失礼ですが、せっかく具体的な対処方法もお示し頂きましたので、関連してお尋ねします。
「フォーム呼び出し」は私も考えました。
さきにフォームの属性等を変更しそれをいったん保存終了した上で「フォーム呼び出し」で開けば
会話処理できるのではないかと。
しかし、フォーム自体を保存終了するコマンドみたいなものは見つけることができませんでした。
はたしてそのような方法はあるのでしょうか。
たぶん無いのだろうと思いますが、もし、何らかの方法があるのでしたらご教授下さい。
この件については、無ければ回答不要です。あればコメント下さい。

佐田さん。最後までおつき合い頂き有難うございました。
イベント処理の考え方がおぼろげながら解ってきました。
今後ともよろしくお願いします。

18399 Re:一括kとイベント-ここが頭の切り替え所です 悲しげ 2003/01/06-11:15
記事番号18398へのコメント
どもっ、はちがめさん、ちょいと横からのコメントで失礼します。
(その前のやりとりも斜めにしか読んでいないことも失礼して)

>フォーム自体を保存終了するコマンドみたいなものは見つけることができ
>ませんでした。はたしてそのような方法はあるのでしょうか。

これは有ります。
フォームに機能「閉じる」(同パラメータリスト「保存する」)を設け、
そのボタンをクリックするか、あるいはkevからなら「実行」メソッドを
「メソッド呼び出し」させることで、フォームを保存終了させます。

もっとも、上記は「ウィンドウ作成−ウィンドウ会話」から入った場合ではなく、
それこそ「フォーム呼び出し」またはコマンドボタンからの「開く」や
「モーダルフォーム」から入った場合についてです。
「ウィンドウ作成−ウィンドウ会話」系はむしろ扱いが難しいので、
私はなるべく使わないようにしています。
18400 Re:一括kとイベント-ここが頭の切り替え所です 悲しげ 2003/01/06-11:24
記事番号18399へのコメント
読み直してみたら、かなり判りにくいので(^^;)少し書き換えます。

>フォームに機能「閉じる」(同パラメータリスト「保存する」)を設け、
>そのボタンをクリックするか、あるいはkevからなら「実行」メソッドを
>「メソッド呼び出し」させることで、フォームを保存終了させます。

               ↓

フォームに機能「閉じる」(同パラメータリスト「保存する」)のコマンドボタンを設けます。
そして、そのボタンをクリックします。あるいはkevからなら、
そのボタンオブジェクトを「メソッド呼び出し 実行」させることでボタンクリックと同等の挙動となります。
その結果、フォームが保存終了されます。
18401 Re:一括kとイベント-ここが頭の切り替え所です はちがめ 2003/01/06-12:55
記事番号18400へのコメント
悲しげさん、コメント有難うございます。
先のスレッドではお世話になりました。そのご順調に動作しています。

>>フォーム自体を保存終了するコマンドみたいなものは見つけることができませんで
>>した。はたしてそのような方法はあるのでしょうか。
>これは有ります。
やはり有るものですねヽ(^o^)丿
ウインドウ作成から入っていたのが迷宮の元だったんですね。
フォームの体裁の変更はユーザーに意識させたくないため、
終了方法は「メソッド呼び出し 実行」で対応したいと思います。
これなら、今の一括の頭?で行けそうなので、試してみます。
他にも移行を急ぐ作業があるものですから。
しかし、先では、佐田さんご指導のとおりイベントの頭で仕上げるつもりでいます。

>「ウィンドウ作成−ウィンドウ会話」系はむしろ扱いが難しいので、私はなるべく
使わないようにしています。
上記は私の今の一括ファイルではあちらこちらで活躍しています。
これを「フォーム呼び出し」に変えていくことが移行作業のほとんどといっていいほどです。
かなり変更しましたが、まだまだ残っています。
ということで、この件に関連する投稿を近いうちすることになるかも知れません。
少しきな臭いです。
そのときは、よろしくお願いします。

18402 Re:一括kとイベント-ここが頭の切り替え所です 悲しげ 2003/01/06-19:08
記事番号18401へのコメント
>フォームの体裁の変更はユーザーに意識させたくないため、

そうであるならば、このコマンド牡丹はワークスペース(フォームの枠外)に置くといいでしょう。

それと、「メソッド呼び出し 実行」は正確には

 メソッド実行 ハンドル=&hwindow,@閉じる牡丹オブジェクト名.実行()

のように記述します。でも「ハンドル=&hwindow,」は普通は省略します。

18403 ありがとうございました はちがめ 2003/01/06-20:11
記事番号18402へのコメント
悲しげさん、重ね重ね有難うございます。
>そうであるならば、このコマンド牡丹はワークスペース(フォームの
>枠外)に置くといいでしょう。
そうですね。その方が見た目もすっきりします。

> メソッド実行 ハンドル=&hwindow,@閉じる牡丹オブジェクト名.実行()
上記は、
メソッド呼び出し ハンドル=&hwindow,@閉じる牡丹オブジェクト名.実行()
で、いいのですよね。m(__)m
それとも私の勘違いかな。

とにかく、修正してやってみます。
ほんとに有難うございました。
18408 (^^;) 悲しげ 2003/01/06-21:33
記事番号18403へのコメント
すいません、云われるまで誤記に全然気がつきませんでした。<(_ _)>

× メソッド実行 ハンドル=&hwindow,@閉じる牡丹オブジェクト名.実行()
○ メソッド呼び出し ハンドル=&hwindow,@閉じる牡丹オブジェクト名.実行()

18413 Re:(^^;) はちがめ 2003/01/07-00:25
記事番号18408へのコメント
どういたしまして。
作業に集中しているうち、コメントに気づきませんでした。

ところで、作業を進めるうち若干状況が変わってきました。
結果は改めて。

18414 Re:一括kとイベント-ここが頭の切り替え所です はちがめ 2003/01/07-01:58
記事番号18399へのコメント
悲しげさん、おはようございます。
今回の件では、残念ながら悲しげさんのアドバイスを活かせませんでした。

最初から整理します。←最初から言えって (-_-;
今回の手続きでは、先に銀行名を選択取得するケースで例を出しましたが、
その他に行事名を取得したり個人名を取得したりします。
そのため、ライブラリに登録して、必要の都度読み込み単一化等の前処理をした後呼び出して利用しています。
つまり、フォームを表示して会話処理させるまでに自動で整形後のフォームを表示させる必要がありました。

フォームの整形を保存することができるということで、これなら行けるとやってみましたが、
今度はフォームの開き方が問題でした。
>もっとも、上記は「ウィンドウ作成−ウィンドウ会話」から入った場合ではなく
そうですね。「ウインドウ作成」からではだめですもんね。T(?_?)T
ここですっぱりあきらめました。

結果は次の通りです。これで思いどおり動いてくれるようになりました。
つまり、前段の変数値格納および後段の回答文字取得部分を除く「オブジェクト操作」部分を
そっくりフォームの「フォーム開始イベント」に移しました。
そして、「フォーム呼び出し」で開いたところ難なく期待どおりの動作をしてくれるようになりました。
変数を多用しているため、この扱いに若干手間取りましたが、
これならフォームを閉じて開き直すなどの処理も不要ですっきりします。
佐田さんが言われた、「会話処理の裏で動く陰のプログラム」が体感できました。

おかげさまで、本件は無事解決しました。
両氏の熱心なサポートに感謝します。ありがとうございました。

戻る