• ベストアンサー

VBの文法について質問です。

Visual Basicのコードの文法がよく分かりません。 ネットや購入したテキストのサンプルコードを比較しても法則性のようなものがまったく見えてきません。 例えば Integer.Parse(Textbox.text) などの『.』での繋ぎにはどんな意味があるのでしょうか? 上のコードでは「型.関数.(変数)」といった感じですが e.Data.GetDataPresent(DataFormats.FileDrop) や Dim stbFiles As New System.Text.StringBuilder() での『e.』や『System.』の『.』の意味がよく分かりません。 おそらくVBに精通している方からすると 的外れな質問に見えるかもしれませんが VBにおける文法の法則性について教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • talosoft
  • ベストアンサー率26% (6/23)
回答No.2

たとえば、ファイルを開く関数を使う場合、 My.Computer.Filesystem.ReadAllText(...) という関数を使います。 VBでは、このような非常にたくさんの関数を使えるようになっています。 上の用法では、 「My.Computer.Filesystem.」 までは名前空間といい、たくさんの関数を分類するために使います。 また、下のように「.」を使うこともあります。 TextBox1.Text これは、TextBox1のText という意味です。 つまり、「.」は、そのまま「の」に置き換えることができます。

you-two
質問者

お礼

ご回答ありがとうございます。 「の」に置き換えるという感じでコードを読んでみたら なんとなくですが分かってきました!!

その他の回答 (1)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

型やクラスなどのメンバー(プロパティやメソッド)を表現するために用います このメンバーが静的であるか否かにより記述の方法が異なります VB.NET付属のMSDNで 『System.Int32 構造体』を参照してみると パブリックメソッドの Parseの前に『S』がついているはずです この『S』つきの物は静的なメソッド(またはフィールド)になります Integer.Parseなどは 静的なメソッドなるので 型.メソッド名 といった使い方になります StringBuilderは 実体(インスタンス)を必要とするクラスなのでnewで生成します ... stbFilesに実体化されたものが代入される eに関しては 何かのイベントハンドラの引数でしょうから このハンドラを呼び出す元で new XXX() といった実体化がされています コードウィンドウの先頭に Imports System.Windows.Forms などといった記述がある場合 本来なら dim txtbox as System.Windows.Forms.TextBox と書くのを dim txtbox as TextBox と『System.Windows.Forms.』を省略可能になります この辺りで混乱があるのではないかと思います

you-two
質問者

お礼

ご回答ありがとうございます。 クラスやメンバーの関係が少しですが分かった気がします!

関連するQ&A

  • テキストボックスの改行について質問です。

    VB超初心者です。 現在VBで複数のCSVファイルを処理するアプリケーションを作成しています。 ドラッグドロップでファイルを認識して処理するのが目的です。 そこでまずテキストボックスにドラッグしたファイル名を表示したいと考えており、 ネットで公開されている以下のソースを利用したいと思っています。 Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop TextBox1.Text = e.Data.GetData(DataFormats.FileDrop)(0) End Sub しかし、これでは複数のファイルの表示ができませんでした。 テキストボックス内で改行させるにはどこを変更したら良いのか全く分かりません。 また、ファイル名ではなくファイルの階層を表示するのも目的と少し異なってしまいます。 調べてみても良くわかりませんでした。 そこでVBに精通している方にお願いです。 希望通りに表示する方法のアドバイスをお願いします!!

  • ファイルをドラッグドロップでTextBooxにファイル名を出したい

    下記のサンプルコードをWEBサイトで見つけたので ListBox1というところをTextBox1と直して テキストボックスにファイルのフルパスが出るように したかったのですが、Listbox1だと正常なのですが、 TextBox1に変更すると動作しなくなってしまいます。 最後の部分の ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop))は TextBox1.Text=e.Data.GetData(DataFormats.FileDrop) に変更してあります。 正常に動作するにはどこを直したらよいか教えて頂きたいです。 宜しくお願いします。m(__)m --------------------------------------------------- Private Sub ListBox1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragEnter '関連連づけの確認をしています。 'この場合、ドラッグアンドドロップの形式であるかどうか? If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'ドロップ効果を取得 e.Effect = DragDropEffects.Copy Else 'ドロップ効果を破棄 e.Effect = DragDropEffects.None End If End Sub Private Sub ListBox1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles ListBox1.DragDrop 'DragEnterイベントで、取得した情報を追加 ListBox1.Items.AddRange(e.Data.GetData(DataFormats.FileDrop)) End Sub

  • TextBoxへ文字列をD&Dをする方法を教えてください。

    Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragEnter If (e.Data.GetDataPresent(DataFormats.Text)) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TextBox1.DragDrop TextBox1.Text = e.Data.GetData(DataFormats.Text)(0) End Sub VB.NETで上記のような方法でドラッグされたテキストを テキストボックスに表示するようにしたいのですが、 この方法だと最初の一文字しかドロップされません。 どこか修正箇所などありましたら、ご教示いただけると助かります。

  • VB.NETのDrag&Dropでペイントが起動してしまう。

    VB.NETにてDrag&Dropでbmpファイルをピクチャーボックスに 表示させようと思い、こちらで他の方が質問されていた ソースを加工してテストしています。 画像ファイルをexplolerで掴んでピクチャーボックスの 上まで持ってくるとDragEnterイベントでアクセサリの ペイントが起動してしまってそこで処理が止まってしまっています。 ブレークポイントを置いてみると e.Data.GetDataPresentで起動してるようです。 ペイントが起動しないようにしたいのですが どうすればいいのでしょうか? どなたかよろしければご教授お願いいたします。 使用ツール:VS2005 OS:WinXpSP2 使用しているソース: Private Sub pict1_DragEnter(ByVal sender As System.Object, _ ByVal e As System.Windows.Forms.DragEventArgs) Handles picturebox1.DragEnter   If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy End If End Sub

  • 【C# 2010】 テキストへのドラック&ドロップ

    VisualStudio C#2010 Express の環境で、テキストボックスにエクスプローラからフォルダを指定(複数)して、ドラック&ドロップすると、そのフォルダのフルパスをテキストボックスへ表示させるアプリケーションを作成しております。 調べながら作成し、フォルダのフルパスをテキストボックスへ表示させられるようになったのですが、わからない点として、複数のフォルダを指定しても、テキストボックスに表示されるのは1フォルダ分のフルパスだけになってしまうという点です。 テキストボックス側のプロパティで、複数行で表示させる設定(Multiline)は有効(True)にしてありますし、ユーザーがドラックしたデータを受け入れるかの設定(AllDrop)も有効にしてあります。 その他、気づいた点として、☆ ドロップイベントの配列(pass)には指定したフォルダ分のフルパスが格納されていますが、textbox1.Text = pass[i] の部分で全てのフルパスがテキストに表示されません。 原因を考えましたが、どうしてもわからなかったので、どなたかお分かりになられる方がいらっしゃい ましたら、ご教授のほどお願いできますでしょうか? 何卒、よろしくお願いいたします。 ----------------------------------------------------------------------------- public Form1() { InitializeComponent(); this.textBox1.DragDrop += new System.Windows.Forms.DragEventHandler(this.textBox1_DragDrop); this.textBox1.DragEnter += new System.Windows.Forms.DragEventHandler(this.textBox1_DragEnter); } // ☆ ドラッグイベント private void textBox1_DragEnter(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.All; else e.Effect = DragDropEffects.None; } // ☆ ドロップイベント private void textBox1_DragDrop(object sender, DragEventArgs e) { string[] pass = (string[])e.Data.GetData(DataFormats.FileDrop, false); int i; for (i = 0; i < pass.Length; i++) { textBox1.Text = pass[i]; } }

  • D&Dで画像のURLを取得したいです。VB.NET

    VB.NET、WinXPなのですが、 Private Sub TextBox1_DragEnter(ByVal sender As Object, ByVal e As DragEventArgs) If e.Data.GetDataPresent("UniformResourceLocator") Then e.Effect = DragDropEffects.Link Else e.Effect = DragDropEffects.None End If End Sub Private Sub TextBox1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Dim url As String = e.Data.GetData(DataFormats.Text).ToString() TextBox1.Text = url End Sub この方法でファイルWEBサイト上の画像をドラッグ&ドロップすると 例えばこのページのGOOのロゴの場合 テキストボックスには「http://www.goo.ne.jp/」というリンク先のURLが 表示されるのですが、 そうではなくて、ロゴそのもののURL「http://www.goo.ne.jp/img/logo/gootop_logo.gif」 を表示させたいのですが、どのようにしたら良いでしょうか。 よろしくお願いします。m(__)m

  • VB.NETでのTextBoxのD&Dについて教えて

    テキストボックスにインターネットエクスプローラ上から リンクをD&Dをする場合、もってくるものの表面上の文字列を 取得するにはどのようにしたら良いでしょうか。 現在(省略あり)下のようになっているのですが、 これだと、urlが出てしまいます。 例えば「トップページに戻る」という文字に http://www.***.ne.jpが設定されていた場合、 urlではなく「トップページに戻る」という文字を取得したいです。 〓DragEnterのプロシージャ〓 If e.Data.GetDataPresent("UniformResourceLocator") Then e.Effect = DragDropEffects.Link 〓DragDropのプロシージャ〓 Dim url As String = e.Data.GetData(DataFormats.Text).ToString() TextBox1.Text = url よろしくおねがいいたします。

  • ドラッグ&ドロップの対象をフォルダに限定したい

    こんばんは。 テキストボックスにドラッグ&ドロップされたフォルダのパスを取得させたいのですがドラッグの対象をフォルダに限定させたい、もしくはファイルがドラッグ&ドロップされたらそのファイルのカレントディレクトリまでのパスを取得させたいのですが、下記のコードでは取得までは出来るのですがファイルがきた場合にファイルまでのパスが取得されてしまいまいます。 よろしくお願いします。 Dim ddpath As String Private Sub TxtPath_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles TxtPath.DragEnter If e.Data.GetDataPresent(DataFormats.FileDrop) Then e.Effect = DragDropEffects.Copy Else e.Effect = DragDropEffects.None End If End Sub Private Sub TxtPath_DragDrop(ByVal sender As Object, ByVal e As _System.Windows.Forms.DragEventArgs) Handles TxtPath.DragDrop ddpath = e.Data.GetData(DataFormats.FileDrop)(0) If Dir(ddpath, FileAttribute.Directory) <> "" Then TxtPath.Text = ddpath End If End Sub

  • vb.netで、ステートメントの終わりを指定してくださいとエラーが出ま

    vb.netで、ステートメントの終わりを指定してくださいとエラーが出ます。 出る部分は、以下のコードです Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If TextBox1.Visible = True Then Me.TextBox9.AppendText("第1小計") + (textbox1.text) + ("円") こんな感じです。 したいことは、ボタン1をクリック時にテキストボックス1が、表示されていたら、テキストボックスに、第1小計とテキストボックス9の中身と円を入力するというかんじです。 ステートメントの終わりを指定してくださいというエラーが出て困っています。 どうすればいいでしょうか? あと、今、書いたコードと似ている動作ができたら何でもOKです。 VBは、バージョンが、2010です vb.net時代ですのデ・・・ よろしくおねがいします

  • VBでテキストをUTF-8で表示するには?

    VB超初心者です。 例えばTextBox1に「あいうえお」とあった際に、ボタンを押すとUTF-8に変換し、 TextBox2に「%e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a」と テキストで表示したいのですが上手くいきません。 いろいろとHPを参考にしながら、”System.Text.Encoding.UTF8.GetBytes"で 取得した値を"toStrings"で文字列すればいいのかな・・・などとやってみても 上手くいかず・・・ ご説明いただいても理解が追いつくか不安もありますが、ご教授願えれば幸いです。

専門家に質問してみよう