VB (5) - 変換.tokyo | henkan.tokyo

【VB】Buttonのクリックイベントを発生させる


■【VB】Buttonのクリックイベントを発生させる

Buttonコントロールのクリックイベントを発生させ、ユーザーによるクリック操作をシミュレートするには、Button.PerformClickメソッドを呼び出します。

PerformClickメソッドはMenuItem、RadioButtonコントロールにもありますので、これらでも同様に使用できます。
ただし、コントロールのCanSelectプロパティがfalseの時は、PerformClickメソッドは何もしません。

例えば、コントロールのVisibleプロパティがfalseの時、CanSelectプロパティはfalseとなります。


■サンプルソース

[VB.NET]

'Button1のClickイベントを発生させる

Button1.PerformClick()


[C#]

//Button1のClickイベントを発生させる

Button1.PerformClick();



























【VB】配列操作


■【VB】配列操作


Scripting.Dictionary オブジェクト

Dictionaryオブジェクトはハッシュテーブルのように、Keyに対するItemを持つことができるオブジェクトです。


●Add キーと項目の追加

●CompareMode 比較モードの設定/取得

●Count 項目の数の取得

●Exists キーが存在するか調べる

●Item キーに関連付けされた項目の変更/取得

●Items 項目の配列を返す

●Key キーを変更する

●Keys キーの配列を返す

●Remove キーを削除

●RemoveAll キーを全て削除


■サンプルコード

Private Sub Sample()

Dim dc As New Scripting.Dictionary
Dim i

dc.Add "KEY1", "ITEMx" 'キーと項目を追加します。

dc.Add "KEY2", "ITEM2" 'キーと項目を追加します。

dc.Add "KEY3", "ITEM3" 'キーと項目を追加します。

dc.Add "KEY4", "ITEM4" 'キーと項目を追加します。


If (dc.Exists("KEY1")) Then 'キー"KEY1"が存在した

dc.Item("KEY1") = "ITEM1" 'キー"KEY1"の項目を"ITEM1"へ変更します。

Else 'キー"KEY1"が存在しない

dc.Add "KEY1", "ITEM1" 'キーと項目を追加します。

End If


If (dc.Exists("KEY2")) Then 'キー"KEY2"が存在した

dc.Remove ("KEY2") 'キー"KEY2"を削除します。

End If


For i = 0 To dc.Count - 1 '格納されている項目の数だけループします。

Debug.Print dc.Keys(i) & "=" & dc.Item(dc.Keys(i))

Next

End Sub


■実行結果

KEY1=ITEM1
KEY3=ITEM3
KEY4=ITEM4








 
















【VB】フォームをアクティブにする


■【VB】フォームをアクティブにする

フォームをアクティブにしたい場合は、Form のインスタンスから Activate メソッドを使用します。



■サンプルコード

' cForm1 をアクティブにする

cForm1.Activate()


' このフォームをアクティブにする

Me.Activate()



















【VB】Chart の X 軸・Y 軸及びメモリ関係の設定

Chart の X 軸・Y 軸及びメモリ関係の設定

ASP.netで、MSChartを使って散布図を作成する必要があったので、MSChartの仕様とその使い方の備忘録です。


このページのトップへ移動します。 1.MSChart コントロールにおける各軸の呼び名と位置
  図1.グラフにおける各軸の呼び名と位置
 mschart04_01.gif
  'グラフにおける各軸の呼び名と位置
  '下側の緑色の線 VtChAxisIdX (X軸/横軸)
  MSChart1.Plot.Axis(VtChAxisIdX).Pen.Width = 70
  MSChart1.Plot.Axis(VtChAxisIdX).Pen.VtColor.Set 0, 255, 0

  '左側の青色の線 VtChAxisIdY (Y軸/縦軸)
  MSChart1.Plot.Axis(VtChAxisIdY).Pen.Width = 70
  MSChart1.Plot.Axis(VtChAxisIdY).Pen.VtColor.Set 0, 0, 255

  '右側の赤色の線 VtChAxisIdY2 (第2Y軸/右側の縦軸)
  MSChart1.Plot.Axis(VtChAxisIdY2).Pen.Width = 70
  MSChart1.Plot.Axis(VtChAxisIdY2).Pen.VtColor.Set 255, 0, 0



X 軸    定数(VtChAxisIdX) 定数値 0 でグラフに対して横方向の軸の事でグラフの項目等の表示に関する部分
Y 軸    定数(VtChAxisIdY) 定数値 1 でグラフに対して左側の縦方向の軸の事でグラフの目盛り等の表示に関する部分
第 2 Y 軸 定数(VtChAxisIdY2)定数値 2 でグラフに対して右側の縦方向の軸の事でグラフの目盛り等の表示に関する部分
今後のサンプルでは、注釈等省略する場合がありますので、各呼び名と表示位置等は覚えておいて下さい。


このページのトップへ移動します。 2.MSChart コントロールにおけるY軸に関する設定色々

  '1.目盛り線の設定(点数の横線)
  With MSChart1.Plot.Axis(VtChAxisIdY).ValueScale
    .Auto = False             '自動設定を解除
    .Maximum = 120             '最大値
    .Minimum = 0              '最小値
    .MajorDivision = 12          '目盛り線の数(等分)10点毎
    .MinorDivision = 2           '補助目盛り線等分   5点毎
  End With

  '2.目盛り線の数値の部分の横線の描き方(グラフ軸の目盛り区分を示すマーカー(太い青色の線))
  With Form1.MSChart1.Plot.Axis(VtChAxisIdY, 1)
    .Tick.Length = 300           '結果が解り易いように長くしております。
    .Tick.Style = VtChAxisTickStyleOutside '目盛りは軸の外側に表示
    '.Style = VtChAxisTickStyleInside   '目盛りは軸の内側に表示
    .Pen.Width = 50            '線の太さを設定
    .Pen.VtColor.Set 0, 0, 255       '線の色を設定(青色)
  End With

  '3.目盛り線の数(等分)10点毎 の線の色を設定
  With MSChart1.Plot.Axis(VtChAxisIdY).AxisGrid.MajorPen
    .Width = 40              '線の太さを設定
    .VtColor.Set 0, 255, 255        '横の線(水色)
  End With

  '4.補助目盛り線の色を設定(5点毎)
  With MSChart1.Plot.Axis(VtChAxisIdY).AxisGrid.MinorPen
    .Width = 20              '線種によっては変化が少ない場合がある
    .Style = VtPenStyleDotted       '線種を設定(点線)
    .VtColor.Set 255, 0, 255        '補助目盛り線の色を設定(桃色)
  End With

  '5.Y 軸のラベルフォントの設定
  With MSChart1.Plot.Axis(VtChAxisIdY).Labels.Item(1)
    '左側の 点数の部分(赤色の太文字部分)
    .VtFont.Name = "MS P明朝"
    .VtFont.Size = 12
    .VtFont.Style = VtFontStyleBold
    .VtFont.VtColor.Set 255, 0, 0
  End With

図2.上記コードの実行結果
mschart04_02.gif

どのコードがどの設定になるのか、コードと図を見比べて下さい。


このページのトップへ移動します。 3.MSChart コントロールにおけるX軸に関する設定色々

  '1.X 軸の設定(下側の緑色の線)
  MSChart1.Plot.Axis(VtChAxisIdX).Pen.Width = 70
  MSChart1.Plot.Axis(VtChAxisIdX).Pen.VtColor.Set 0, 255, 0

  '2.X 軸の区切り線/ラベルの表示間隔等の設定
  With MSChart1.Plot.Axis(VtChAxisIdX).CategoryScale
    .Auto = False
    'ラベルの表示間隔 2=飛び飛びに氏名を表示
    .DivisionsPerLabel = 1 '1名毎
    'ラベルの区切り線の表示間隔   2=2名一緒に一枠に表示
    .DivisionsPerTick = 2  '2名毎に区切り線を表示
  End With

'  '区切りを設定しない場合
'  MSChart1.Plot.Axis(VtChAxisIdX).Tick.Style = VtChAxisTickStyleNone

  '3.X 軸のラベルの図表の区切り線の設定(桃色の縦線の部分)
  With MSChart1.Plot.Axis(VtChAxisIdX).AxisGrid
    .MajorPen.Style = VtPenStyleDitted
    .MajorPen.Width = 60
    .MajorPen.VtColor.Set 255, 0, 255
  End With

  '4.X 軸ラベルのテキストの設定
  With MSChart1
    .Row = 1
    'テスト用に長い文字列をセット
    .RowLabel = "ABCD EFGH"
    With .Plot.Axis(VtChAxisIdX).Labels.Item(1)
      .Auto = False
      .VtFont.Size = 12
      '上揃えで表示
      .TextLayout.VertAlignment = VtVerticalAlignmentTop
      '縦書き表示
      .TextLayout.Orientation = VtOrientationVertical
    End With
  End With

  図3.上記実行結果
 mschart04_03.gif



.TextLayout.WordWrap = True では、WordWrap が有効にならない。従ってラベルのテキストには長い文字は使用しないようにして下さい。
本来グラフは、一目瞭然であるべきで、解説文かのような長いテキストを使用すべきではないかと思います。
また、一般的でないような表示設定は、MSChart ではできないと思って下さい。


このページのトップへ移動します。 4. MSChart コントロールにおける第二Y軸に関する設定

コード的には、Y軸に関する設定と同じです、VtChAxisIdY のようなY軸の定数を VtChAxisIdY2 のように 2 を追加するだけです。従ってサンプルコードは、2.MSChart コントロールにおけるY軸に関する設定色々の方をご覧ください。

  With MSChart1.Plot.Axis(VtChAxisIdY2, 1)
    .Tick.Length = 300             '結果が解り易いように長くしております。
    '.Tick.Style = VtChAxisTickStyleOutside   '目盛りは軸の外側に表示
    .Tick.Style = VtChAxisTickStyleInside    '目盛りは軸の内側に表示
    .Pen.Width = 50               '線の太さを設定
    .Pen.VtColor.Set 255, 0, 0         '線の色を設定(赤色)
  End With

  With MSChart1.Plot.Axis(VtChAxisIdY2).ValueScale
    .Auto = False                '自動設定を解除
    .Maximum = 120               '最大値
    .Minimum = 0                '最小値
    .MajorDivision = 12             '目盛り線の数(等分)10点毎
    .MinorDivision = 2             '補助目盛り線等分   5点毎
  End With
  
  図4.Y軸に関する設定のコードを定数を変えて実行した結果
 mschart04_04.gif


このページのトップへ移動します。 5.MSChart コントロールの折れ線グラフ時のX軸の目盛り区分線を設定

  MSChart1.chartType = VtChChartType2dLine
  With MSChart1.Plot.Axis(VtChAxisIdX)
    '折れ線の時のみ有効
    .CategoryScale.LabelTick = True    '軸の中央に表示
    '上記がTrurの場合に有効
    .Tick.Length = 400           '結果が解り易いように長くしております。
    .Tick.Style = VtChAxisTickStyleOutside '目盛りは軸の外側に表示
    .Pen.Width = 50            '線の太さを設定
    .Pen.VtColor.Set 0, 255, 0       '線の色を設定(緑色)
  End With

 mschart04_05.gif


ASP.netにて組み込んでみました。
Log10対数の軸なんかも簡単に出せて、非常に便利ですね。

.netではありませんが、グラフ描画パーツを簡単にWeb組み込めるjQueryライブラリ『jqPlot』もかなり重宝しますね。

あちらは細かな軸の設定が必要ない時には便利だと思います。

また次の機会にご紹介致します。


読者の皆様、日々の開発業務、どうもお疲れ様です!

いろいろ試してみましたが、疲れたときにはやっぱりこれが一番元気出るんですよね。

カフェイン多めで眠気スッキリ。味も美味しいですし♪

アサヒのMONSTER飲んで、今日も乗り切りましょう!

【VB】フォームに自動スクロールバーを付ける


【VB】フォームに自動スクロールバーを付ける


フォームに自動スクロールバーを付けるには、AutoScroll プロパティを True に設定します。

フォームのクライアント領域外にコントロールがあれば、自動でスクロールバーが付くようになります。

通常は、デザイナで初期値として設定します。


【サンプルソース】

' フォームに自動スクロールバーを付ける
Me.AutoScroll = True