命令文の代入実行方法教えてください。

解決


Boda  2004-04-09 10:23:21  No: 82961  IP: [192.*.*.*]

変数に命令文を代入して、命令を実行することはできまるか?

dim i as string
dim j as string

text1.text = ""
テキストに任意で文字を入力する
例えば、left(aaa,2)と入力します。(すべて半角)

ここで、コマンド1ボタンを押したときに、テキストに入力した命令文を実行させます。


private sub command1 click

if text1.text= "" then    '何も入力してない時は何もしません
  exit sub
end if


i = text1.text   'テキスト入力文字列を代入
この時点で、iにleft(aaa,2)がそのまま代入されます。(ダブル、シングルコーテーションはついてません)

j = i            '入力文字列命令文を実行後、Jに代入
ここで、iに代入されている命令文を実行し、、Jには"left(aaa,2)"を実行した"aa"が代入されててほしいのですが、
そのままleft(aaa,2)が代入されてしまいます。

end sub

ダブル、シングルコーテーションははずして、命令文のみを代入してるのですが、
命令文を変数に代入後に実行させることは不可能なのでしょうか?

編集 削除
うにぃ  2004-04-09 11:02:07  No: 82962  IP: [192.*.*.*]

入力された文字列はあくまでも文字列です。
それを実行することはできません。

それを実行したいならば、
自分で入力された文字列を判別して処理をするプログラムを書かなければなりません。

編集 削除
ファリンファリン  2004-04-09 11:19:34  No: 82963  IP: [192.*.*.*]

うにぃさんの仰る通りですね。

一番現実的なのは、引数分の入力テキストを用意して
それで関数を実行してあげる方法ですかね。
関数自体も選択させたいのであれば、ドロップダウンの
コンボボックスなど用意して選択させるのもありだと思います。

編集 削除
Boda  2004-04-09 11:51:34  No: 82964  IP: [192.*.*.*]

うにぃ様、ファリンファリン様

ありがとうございます。
文字列は文字列と判断して、文字列に命令文を代入しても実行はできないんですね。
ファリンファリン様のご意見を参考にさせていただき、代入された文字列によって、
処理を分岐させて、プログラム内で処理をするようにプログラムを作ってみます。
また行き詰ったら質問に来てしまうと思いますが、まずは調べてがんばってみます。

ありがとうございました!!

編集 削除
いちゆ  2004-04-13 16:21:48  No: 82965  IP: [192.*.*.*]

なんか昔に三つも四つもおんなじ質問している人を見かけるけど,
MSのScriptingObjectだったか,そんな感じのocxを使えばできるんじゃ南買ったっけ?
ExcelのEValとか。

編集 削除