プログラミングメモ

思った通りに動いてくれて嬉しかったこと

DataTable・DataGridViewを使ってみる

サンプル1

概要

今日以前30日間分のアクセス数(乱数)をDataGridViewへ表示してみる。

 

準備

WindowsフォームVBプロジェクトのフォーム上に

Button.Button1(DTTest呼び出し用)

DataGridView.DataGridView1

を設置してください。

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

 

Sub DTTest()

    Dim dt As New DataTable
    Dim bufdate As Date
    Dim rand As New Random(1) '乱数生成用

   

    'Column生成
    Dim colDate As New DataColumn("ColDate", GetType(DateTime))
    dt.Columns.Add(colDate)

   

    Dim colAccess As New DataColumn("ColAccess", GetType(Integer))
    dt.Columns.Add(colAccess)

   

    '取り敢えず今日
    bufdate = Now.Date()

    'TestData生成
    For i = 0 To 30

        Dim row As DataRow = dt.NewRow()

        row("ColDate") = DateAdd(DateInterval.Day, -i, bufdate)
        row("ColAccess") = rand.Next(50, 100) '50~100までの数値をランダムで生成

        dt.Rows.Add(row)

    Next

 

    'データグリッドへ表示
    DataGridView1.DataSource = dt

End Sub

 実行結果

f:id:megrez11278:20170820222255j:plain

フリーソフト

ServerLogon

概要

NASなどの共有フォルダに対して、権限を追加・変更してアクセス。

 

詳細

コマンドプロンプトでnet useコマンドを実行したのと同等に機能します。

全てログアウト=net use * /delete

ログイン=net use [サーバー/フォルダ] [Password] /user:[User]

 

利用方法

サーバー/フォルダ:[アクセス先Path]   例)\\192.168.1.1\public 

User:[ログインユーザーID]

Password:[パスワード]

 

を指定後にログインボタンをクリック

 

ダウンロードリンク 

ServerLogon.zip - Google ドライブ

 

指定桁数左0埋め

解説

Integer型の値をStringに変換と同時に左側へ0を連結します。

その後、右側より指定桁数を抜き取ります。

String.Format()などでも可能かと思います。

vb.net

'テストデータ
Dim Arr() As Integer = {1, 12, 123, 1234, 12345}
Dim buf As String


For Each i In Arr

    buf = Strings.Right("00000" & i.ToString, 5)
    Console.WriteLine(buf)

Next

文字列から指定位置の文字列を抜き取る

解説

mid関数などもありますが、ここではSubstring関数を利用します。

 

vb.net

'データ
Dim FileName As String = "calc.exe"
'.(ドット)より前を取得
Dim Name As String = FileName.Substring(0, FileName.LastIndexOf("."))
'.(ドット)より後ろを取得
Dim Extension As String = FileName.Substring(FileName.LastIndexOf(".") + 1)

 

Console.WriteLine("Name:" & Name)
Console.WriteLine("Extension:" & Extension)

 

 

String.Splitで文字列内の指定文字を区切り文字として配列に分割

サンプル1

'テキストデータ

Dim sampledata As String = "日時,天気,温度"

'区切り文字

Dim delimiter As Char = ","

'Sprit受け取り配列
Dim array() As String

 

array = sampledata.Split(delimiter)

 

For Each bufstr In array
    Console.WriteLine(bufstr)
Next

解説

csvファイルの読み込み時など、意外に使い道があるかと思います。

変数sampledata内の,(カンマ)を区切り文字として配列に分割します。

 

サンプル2

概要

list変数内のデータをComboBoxの一覧に表示します。

準備

WindowsフォームVBプロジェクトのフォームに

ComboBox.ComboBox1をセットしてください。

 

FormLoadイベントなどでCom()を呼び出してください。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
    Com()
End Sub

Sub Com()

    Dim list As String = "1,2,3,4,5,6,7,8,9,10"
    Dim arr() As String = list.Split(",")

    For Each buf In arr
        ComboBox1.Items.Add(buf)
    Next

End Sub

 

 

WindowsForm版Hello worldの作成

ここでは、ボタンをクリックすると”Hello world

と表示するVB.Netアプリケーションを作成します。

 

ところで、Visual Studio Communityのインストールは無事に完了しましたか?

 

正常に完了していれば

スタートメニューにVisual Studio 2017が追加されているはずです。

 

早速、起動してみましょう。

 

続いて新しいプロジェクト項目の一番下に

新しいプロジェクトの作成...

があるかと思いますのでクリックしてみましょう。

f:id:megrez11278:20170816142146j:plain

 

新しいプロジェクトウインドウが開きますので、左側のツリーで

インストール済み→VisualBasicWindowsクラシックデスクトップを選択。

一覧のWindowsフォームアプリケーション(.Net Framework)を選択し

名前を”Hello world”(適当でいいですが)とし、OKをクリックしましょう。

f:id:megrez11278:20170816143310j:plain

 

次に、ツールボックスよりButtonとLabelを1つずつFormへドラック&ドロップして貼り付けます。

f:id:megrez11278:20170816152550j:plain

 

Form1へ貼り付けたButton1をダブルクリックしてみましょう。

次の様なソースコードが表示されます。

f:id:megrez11278:20170816153215j:plain

 

次の赤い文字を追記してみましょう。

Private Sub Button1_Click~~~

     Label1.Text = "Hello world"

End Sub

 

以上で作成は完了です。早速動かしてみましょう。

開始をクリックします。

f:id:megrez11278:20170816155132j:plain

 

Form1ウインドウが表示され

 Button1をクリックすることによりLabel1と言う表示がHello worldへ変わりましたでしょうか?

 

作成は以上となりますが、少しだけ今回の作成内容を確認してみましょう。

 

画面上方のForm1.VB[デザイン]タブを選択し、Button1コントロールを選択状態します。

さらにプロパティウインドウの雷みたいなアイコンをクリック。

Click項目を探して選択状態にしてみましょう。

f:id:megrez11278:20170816160514j:plain

プロパティーウインドウ下に説明が出ていますね。

続いて、Click項目のButton1_Clickをダブルクリックしてみてください。

先ほど追記したソースコードが再び表示されるかと思います。

 

なんとなくイメージはつきましたでしょうか?(笑)

つまり、コンポーネントをクリックされたと時に発生するイベントとして

Label1.Text = "Hello world"

が実行されると言うことです。

 

ちなみに

Label1.Text

ですが、デザイン画面で見てみましょう。

f:id:megrez11278:20170816162113j:plain

コントロールに関連付けられたテキストが”Label1”となっていますが

Button1をクリックすることにより

Label1.Text = "Hello world"

が実行されますので”Label1”→"Hello world"へ置き換わる。

ということになります。

 

 

長くなってしましましたが以上となります。

お付き合い頂きありがとうございました。

 

まずは開発環境

マイクロソフト無償で提供している開発ツール

Visual Studio Communityを利用します。

 

ダウンロードは以下より

www.visualstudio.com

 

Visual Studio Community2017の無償ダウンロードをクリックすると

インストーラがダウンロードされます。

 

ダウンロード完了後にインストーラを実行し指示通りに進めてください。

インストール時間は、1時間程ですかね~。