削除する命令をうまくするのは?

解決


こわし  2007-02-23 21:15:39  No: 135460

例えば5つのキャラがいて
モジュールにキャラ全部のデータを""にする関数を作っておいて
削除ボタン作ってそれを実行したとしたらすべてのキャラのデータが空になります。でもキャラのデータを読み込む際には一度部分的に変数に値が残っておかないようにしておくため、読み込む前に空にする関数を命令させるので
どうやったら削除ボタンでその選んだキャラのみでデータを削除したらいいのかわかりません。
だれか教えてください。


通ってみた  2007-02-23 22:44:05  No: 135461

よく意味がわかりません
開発環境、現在のコードを提示し、それではどこがまずいのかを明示してください
何度もレスを繰り返して情報を引き出すのは面倒です


こわし  2007-02-23 23:26:07  No: 135462

'キャラ設定構造体の内容をリセット
Sub Reset_character()
    Dim i As Long
    Dim j As Long
    For i = 0 To CHARA_ACOUNT_MAX - 1
        mai(i).tel = ""
        mai(i).Nam = ""
        mai(i).Adres = ""
        mai(i).POP = ""
        mai(i).SMTP = ""
        mai(i).ID = ""
        mai(i).Pass = ""
        mai(i).RepeatA = ""
        mai(i).RepeatB = ""
        mai(i).RepeatC = ""
        mai(i).RepeatD = ""
        mai(i).RepeatE = ""
        mai(i).RepeatF = ""
        mai(i).RepeatG = ""
        For j = 0 To SENDMAIL_MAX - 1
            mai(i).Subject(j) = ""
            mai(i).Body(j) = ""
        Next j
    Next i
End Sub
と作っておいて、
'削除
            If vbYes = MsgBox("削除しますか?", vbYesNo + vbQuestion, "キャラの削除") Then
                Reset_character
            End If
としようとしたら全部のキャラのデータが""になってしまうんです。

そのキャラを選んだらデータがテキストボックスにでるようにしておいて、そこで削除選んだらそのキャラだけ""になるようにしたいんです。

わかりにくくてすいません。


黒頭巾  2007-02-23 23:42:23  No: 135463

>For i = 0 To CHARA_ACOUNT_MAX - 1
>'〜
>Next i
当然、配列内のすべてのデータ(キャラとやら)を対象にしているので、
そのように動きます。

上記のループ部分を消して、
Sub Reset_character(i as Integer)
'〜
End Sub

こんな感じで外からの値を受け入れて、

If vbYes = MsgBox("削除しますか?", vbYesNo + vbQuestion, "キャラの削除") Then
    Reset_character(ここで削除するキャラを指定)
    '指定するキャラ=Reset_character()内でいうところの変数i
End If

で、どうでしょうか。

ちなみに
>そのキャラを選んだらデータがテキストボックスにでるようにしておいて、
ここはまた別の問題になってきますね。
どのような手段でキャラを選択するか分かりませんが、(リストボックス?)
私なら、キャラを選択した時点で、そのキャラを識別するための数値を変数に記憶しておきます。
で、その数値をそのまま、先ほど提示させていただいたReset_character()に流用します。

私なら、ですが…。


通ってみた  2007-02-24 01:37:45  No: 135464

黒頭巾さんの回答で1データだけ削除できます
もし全データを消したい場合は、サブルーチンの中でループさせるのではなく、呼び出し側でループさせて呼び出してください
そうすればサブルーチンを複数持つ必要がないです

また最初のレスにも書きましたが、必ず開発環境を書いてください
質問内容によっては回答内容が変わってくる場合が(多々)あります

>そのキャラを選んだらデータがテキストボックスにでるようにしておいて、

という部分に関しては、質問内容がこの部分よりも先の段階になる為、既にできていると判断しますがよろしいでしょうか


こわし  2007-02-24 01:48:02  No: 135465

黒頭巾さんと通ってみたさん、ありがとうございます。さっそく変えてみます。

あと
>そのキャラを選んだらデータがテキストボックスにでるようにしておいて
ってのできてます。

わかりにくい質問ですいませんでした。まだまだ初心者なもんで・・。


かず  2007-02-24 10:57:40  No: 135466

>まだまだ初心者なもんで・・。

と思っているうちは、なるべく標準語を使うように心がけてください。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加