プロが教えるわが家の防犯対策術!

Sub InStrSample1()
Dim myData As String
Dim i As Integer

myData = "*******@projecta.co.jp"

i = InStr(myData, "@")

MsgBox Left(myData, i - 1)

End Sub
ネット上で上のようなプログラムを見つけ、VBで書いてみたら何も動きませんでした。ダイアログボックスに*******と表示されるらしいんですが、その設定プロパティがわかりません。お願いします。

A 回答 (4件)

>これを使ってテキストに保存した”あいうえお”から”わをん”までの文字の中か>ら”まみむめも”を抜き出すというようなプログラムを作れませんか?これとは違>うプログラムになるのでしょうか?



myData = "あいうえお・・・まみむめも・・・わをん"
i = InStr(myData, "ま")
MsgBox Mid(myData, i, 5)

ちょっとは考えましょうよ。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。すいませんでした、書き方がおかしかったですね。そのテキストに名前を付けておいてその名前をプログラムに書いて”まみむめも”を抜き出したいんです。プログラムの中には”あいうえお”とか”わをん”を書かないで抜き出したいんですが、できるんですかね?よかったらお願いします。

お礼日時:2002/01/23 13:53

勉強しなければならないこと



○ ファイルの読み込み方
○ InStr、Left、Mid、Rightの4つの関数の動作

これだけですね。
ファイルの扱い方は最初は難しいですが、4つの関数については自分でいろいろ値を入力してみて、どういう動作をするのか目で見てみることがいちばんの上達になると思います。
いちばん簡単なのは、VB内でCtrl+Gを押したときに現れるテキストのウィンドウに

? left("あいうえお", 2)

とか

? instr("あいうえお", "う")

とか入力してEnterをその行で押してみると、関数の結果をダイレクトに表示してくれるので、どういう動作をするのかが明らかです。


ファイルの読み込み方については、ヘルプで

○ Open
○ Input

などのキーワードで調べてみましょう。
その際わからないことがあったら、また質問してみてください。
掲示板の構造上、ソースコードを全部書いてしまうというわけにはいかないので、ある程度わかるようになって疑問にぶつかったら、また来るといいでしょう。

ちなみにmos21さんのコードを、メニューの "プロジェクト"→"標準モジュール" の追加でできるウィンドウ内に貼り付けて、先ほどのCtrl+Gで現れるウィンドウで

instrsample1

と入力してEnterを押すと、お望みどおりの結果が得られますよ。
    • good
    • 0

下の回答で良いと思いますが、付け加えるなら、、、



このサブプロシージャ(Sub~End Subまで)はInStr関数を使って
文字列[myData]の中に"@"があれば、その最初の文字の位置を
変数[i]に返し、Left関数で[myData]の左から[i-1]文字目
までをメッセージボックスで表示(MsgBox)させています。

で、実行させる方法ですが、、、
ボタンを押したときのイベントにするなら、[デザイン]時に
フォーム上にコマンドボタンを置いてダブルクリックすると
クリックした時のイベント(Command1_Click())が記述できます。
([Command1]は名前を付けない場合のデフォルトの名前)
そこに下の回答の通りに記述するか、もしくは次のように記述します。

Private Sub Command1_Click()
 Dim myData As String
 Dim i As Integer
 myData = "*******@projecta.co.jp"
 i = InStr(myData, "@")
 MsgBox Left(myData, i - 1)
End Sub

[開始](右向きの三角)を押せば試しに実行できます。
    • good
    • 0
この回答へのお礼

ありがとうございました。プログラムの意味がよくわかりました。

お礼日時:2002/01/23 13:48

もしかしてInStrSample1を実行するイベントを記述しないのでは。


ボタンでも張りつけて、以下のようにしたら表示されますよ。

Private Sub Command1_Click()
Call InStrSample1

End Sub

Sub InStrSample1()
Dim myData As String
Dim i As Integer

myData = "*******@projecta.co.jp"

i = InStr(myData, "@")

MsgBox Left(myData, i - 1)

End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました、表示できました。これを使ってテキストに保存した”あいうえお”から”わをん”までの文字の中から”まみむめも”を抜き出すというようなプログラムを作れませんか?これとは違うプログラムになるのでしょうか?

お礼日時:2002/01/22 12:46

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