LotosLabo

プログラミング技術とか気になった情報を載せていきます

Visual Basicについて

Visual Basicとは?


Basic言語を基に作られたMicrosoftスタンドアロン開発用プログラミング言語です。
また、開発環境と一緒に使うことで容易にアプリケーションの開発を行えることとしてプログラミング初心者にとって扱いやすい言語です。

開発環境(IDE)は?

Visual Studioです。ネットに無料版のVisual Studio Expressなどもありますので、そちらをご利用ください。
もちろん、製品版を買ってもいいのですが、無料版でも十分の機能が備わっているので、お金を掛けたくない!という方にはオススメです。
尚、私は製品版の2012を使用しています。

書き方・作り方


ファイルタブ→ 新規作成 → プロジェクト

Visual Basicを選び、 Windows フォームアプリケーションを選択し、名前を入力してOKボタンを押してプロジェクトが作れます。

f:id:lo25131:20140202022220j:plain


プロジェクトの画面

f:id:lo25131:20140128105612j:plain


左のツール画面→ すべてのWindowsフォームを選択し、
コントロールを配置していきます。

ドラッグ&ドロップ、もしくはダブルクリックで配置できます。

試しにボタンとラベルを二つ配置してみました。

f:id:lo25131:20140128105843j:plain

コントロールはコピーと貼り付けを行えるので、簡単に増やせます。


コードの書き方


続いてコードを書いていきましょう。
まずはButtonのコントロールをダブルクリックすると、
コードが書かれた画面に飛びます。

f:id:lo25131:20140128110103j:plain

ここで処理を書いていきましょう。

Visual Basicではダブルクリックしたことにより、そのコントロールのイベントの処理だけを書くことで処理を実装できるため少ないコードでアプリケーションを開発することが出来ます。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
End Sub


こちらが、ボタンをクリックした時のプログラムです。
ここの Private SubからEnd Subの間に処理を書きます。

「ボタンをクリックした時に何が起こるの?」
ということです。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Form1.Close() //Form1を閉じる
End Sub


ここではボタン1をクリックした時にForm1を閉じると命令しました。これだけで処理を実装できます。


基本的なイベント一覧

Visual Basicではイベントを実装するときにほとんどがコントロールをダブルクリックして行うのでイベントをコードで書くということは少ないかと思いますが、ごく一部載せてみました。

ロードイベント

Private Sub Form1_Load
処理
End Sub

クリックイベント

Private Sub Button1_Click
処理
End Sub

マウスカーソル移動範囲

Private Sub Form1_Activated
処理
End Sub

プルダウンメニューイベント

Private Sub ToolStripMenuItem_Click
処理
End Sub

タイマーイベント

Private Sub Timer1_Tick
処理
End Sub


マウスイベント

(移動した時)
Private Sub Picturebox1_MouseMove
処理
End Sub

(おした時)
Private Sub Button1_MouseDown
処理
End Sub

(離れた時)
Private Sub Button1_MouseLeave
処理
End Sub

(乗せた時)
Private SUb Button1 MouseHover
処理
End Sub



基本的な処理一覧

ボタンのデザイン

ボタンのサイズ
Button1.width = 100  // 横
Button1.height = 100 // 縦

ボタンの3D化
Button1.FlatStyle = FlatStyle.Popup

ボタンに画像を割り当てる
Button1.Image = System.Drawing.Image.FromFile("Picture.jpeg")



効果音

SEの再生
My.Computer.Audio.Play("音楽.wav")

停止
My.Conputer.Audio.Stop()



画面遷移

フォーム1へ
Form1.Show()

先ほど開いていたウインドウからこっちに切り替える
My.Application.ApplicationContext.MainForm = Form1



画面を閉じる

メインウインドウを閉じる
Me.close()

フォーム1を閉じる
Form1.Close()



メッセージボックスの表示(メッセージウインドウ、警告や注意の確認)

Dim Ret As DialogResult
Ret = MessageBox.Show("本当にいいですか?" _
, "確認", MessageBoxButtons.YesNo _
, MessageBoxIcon.Exclamation)
Select Case Ret
Case DialogResult.Yes   
Me.Close()   
End Select



表示・非表示

PictureBox1.VIsible = True // 表示
PictureBox1.Visible = False // 非表示


変数の格納

Public Class Form1

の真下に記載する

Dim 変数名 As  String(Integer,Boolean)

例:
Dim n As Integer = 0
Dim   Anago(10)   As  Integer
Dim  x,y,z As  Integer



変数の割り当て

Anago(0)  =   Button1
x = Textbox1



インポート

テキストファイルの読み取り・書きこみを可能にする
Imports System.IO, System.Text

↑
Public Class Form1の真上に記載する

テキストファイルの読み込み
IO.StreamReader("TEXT1.text",Encoding.GetEncoding("Shift=JIS"))



Until処理

Trueになったら抜けれる

Do Until  変数名  = True
Loop

If文

If 変数名の処理  Then
処理
Else
End If


例:

0のとき表示、それ以外は表示しない

Dim anago  As  Integer
If anago = 0  Then
   Picturebox1.visible = true
else
   Picturebox1.visible =  False
End if


For文


For a = 0 To 10
If C = 10 Then
z + =1
Endif
Next

Cが10の時にzを1ずつ増やし、aを10まで続ける

テキストラベルの処理

空にする
Label1.text =  ""

あいうえおと表示させる
Label1.text = ”あいうえお"


0と表示される
Dim i As Integer
i = 0
Label1.text =  i



マウスカーソルを使う(オリジナル)

オリジナルアイコンファイルを読み込み
Dim ico  As  New Icon(”オリジナル.ico")

カーソルをアイコンファイルに変換
Dim  cur  As  New  Cursor(ico.Handle)
Me.Cursor = cur

カーソルがウインドウからでないように処理
Dim  limitRect   As   Rectangle   =   Me.Bounds

移動範囲の宣言
Cusor.Clip   =   limitRect



タイマーの処理

Timer1.Enabled  =  True     //開始
Timer1.Enabled  =  False  //停止

一秒ずつ減らしていく
Dim time As Integer  =  10
time  -= 1



バージョン情報の表示

Dim newAboutbox As New AboutBox1
newAboutbox.ShowDialog()



乱数表示

a を4つランダムで表示する
Randomize()
a =  Int(4 * Rnd())
a.visible  = True



Case 文

それぞれのパターンを処理として書く
Select  Case  True
      Case    abcd   >   0
         処理
Case     acdb    > 0
       処理
End select



他のフォームから呼び出す

Label1.txt = Fom2.Label1.text


コメントの書き方

'これはコメントとなる



直線を書く方法


黒い線で直線を書く
e.Graphics.DrawLine(Pens.Black, 10 , 20 , 200, 10)


配列

配列の初期化
Dim a() As  Integer={10,20,30}


配列の全要素参照
For i = 0 To a.GetUpperBound(0)
 a(i)
Next

テキストを寄せる

Label1.textAlign = Topleft


リストボックスの処理

リスト内の項目を全て削除
ListBox1.Items.Clear

n番目の項目を削除
ListBox1.Items.RemoveAt(n)

リストボックスの値を追加
ListBox1.Items.Add(”〇〇")