忍者ブログ
ブログ主が仕事や個人的に学んだPC系・プログラミング系(VBAとかHTML)について書いていく備忘録ブログ。 ※ここで記載する内容はあくまで「個人的に」上手くいく内容です。ご使用には十分注意してください
Posted by - 2017.07.22,Sat
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

Posted by 若槻風亜 - 2016.12.27,Tue

(対象)VB2010(VB.NET)


初歩的ですがブログ主はよく忘れて
何度もグーグル先生にお尋ねしてました。


<昇順>
 Array.Sort(配列)    '---昇順

 配列の中身
  1,4,6,2,9,3 → 1,2,3,4,6,9
  ねこ、いぬ、たぬき、きつね → いぬ、きつね、たぬき、ねこ


<降順>
 Array.Reverse(配列) '---降順

 ※降順に並べ替える場合は先に昇順で
  並べ替えましょう

 配列の中身
  1,2,3,4,6,9
  いぬ、きつね、たぬき、ねこ


拍手[0回]

PR
Posted by 若槻風亜 - 2016.09.11,Sun

(対象)VB2010(VB.NET)


初歩的ですが、フォルダがあるか・ファイルが
あるかを確認する方法です。


1.フォルダの有無を確認

    If System.IO.File.Exists("フォルダパス\") Then
        MsgBox("指定フォルダは存在します")
    Else
        MsgBox("指定フォルダは存在しません")
    End If

 ※フォルダパス例)C:/test/ 
  → Cドライブのテストフォルダ



2.ファイルの有無を確認
    If System.IO.File.Exists("ファイルのフルパス") Then
        MsgBox("指定ファイルは存在します")
    Else
        MsgBox("指定ファイルは存在しません")
    End If

 ※ファイルのフルパス例)C:/test/aaa.txt
  → Cドライブテストフォルダの「aaa.txt」



ブログ主は最近「System」の部分は抜いて書いて
いることが多いです。僅かでも省略出来るところは
省略したい面倒くさがりや精神。



拍手[0回]

Posted by 若槻風亜 - 2016.03.18,Fri

(対象)VB2010(VB.NET)


今回はVB2010でのタブコントロール(タブページ)の
ドラッグ&ドロップによる並べ替えです。


ドラッグ&ドロップによるタブの並べ替えはタブコントロールを
使用する際、
それがユーザーが増やせるタイプであれば
あるほど
欲しくなる機能だと思います。

しかし、いざ検索しても出てくるのは難しい
ものばかり。かく言うブログ主も挑戦して
挫折しました。

それでも何とか並べ替えしたい。
そう思って試行錯誤した結果、簡単に並べ替えられる
方法を作成できました。

それがこちら↓



(必要なコントロール)
 ・TabControl(名前:TabControl1)
 ・Timer(名前:Timer1)




(ソース)
    '■変数
    Public Tab1 As TabPage        '---移動するタブ
    Public Tab2 As TabPage        '---移動先のタブ
    Public TabPosX1 As Double     '---移動するタブのX位置
    Public TabPosY1 As Double     '---移動するタブのY位置
    Public TabPosX2 As Double     '---移動先のX位置
    Public TabPosY2 As Double     '---移動先のY位置
    Public TimeCount As Integer   '---MouseMoveしている間にカウントされ続ける値
    Public I As Integer           '---諸動作
    Public SortFlg As Boolean     '---ソート中かどうかの判断用
 
 
    '===========================================================
    ' タブの並べ替え
    ' ※右に移動 = 色が変わったタブの右側に移動
    ' ※左に移動 = 色が変わったタブの左側に移動
    '===========================================================
    '1.MouseDownで現在のタブを取得
    Private Sub TabControl1_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseDown
        '■現在地(X-Y)
        TabPosX1 = e.X
        TabPosY1 = e.Y
 
        '■タブの取得
        I = -1 : Tab1 = Nothing
        For cnt = 0 To TabControl1.TabCount - 1
            If TabControl1.GetTabRect(cnt).Contains(TabPosX1, TabPosY1) Then Tab1 = TabControl1.TabPages(cnt) : I = cnt : Exit For
        Next  '---タブの数だけ回すFor-Next
 
        '■タイマーをオンにして加算を開始
        TimeCount = 0
        Timer1.Start()
    End Sub
 
    '2.タイマーで値を増やす:Timerは200ミリ秒くらいごとに起動するようにしておく
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        '■値を加算し、ゼロを超えれば長押し中なのでカーソルの形式を変える
        TimeCount += 1
        If TimeCount > 0 Then Cursor = Cursors.NoMoveHoriz
    End Sub
 
    '3.移動先の場所を取得
    Private Sub TabControl1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseMove
        '■カーソルのある位置を動くたびに取得
        TabPosX2 = e.X
        TabPosY2 = e.Y
    End Sub
 
    '4.MouseUpされたとき、ただのクリックか長押しかを判断し、長押しならマウスが離された先に移動
    Private Sub TabControl1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabControl1.MouseUp
        '■TimerCountの値が2未満なら処理を抜ける(2以上ある場合は確実に長押し)
        Cursor = Cursors.Arrow  '---カーソルを元に戻す
        Timer1.Stop()           '---タイマーを止める
        If TimeCount < 2 Then Exit Sub
 
 
        '■移動先のタブを取得
        I = -1 : Tab2 = Nothing
        For cnt = 0 To TabControl1.TabCount - 1
            If TabControl1.GetTabRect(cnt).Contains(TabPosX2, TabPosY2) Then Tab2 = TabControl1.TabPages(cnt) : I = cnt : Exit For
        Next  '---タブの数だけ回すFor-Next
        If IsNothing(Tab2) Then Exit Sub
 
 
        '■現在のタブを指定位置に追加し、元々のタブを削除
        SortFlg = True  '←SelectIndexChangeに何か処理が入っておりそれを行われると困る場合はこれでIF分挟んで処理を抜ける
        TabControl1.TabPages.Remove(Tab1)
        TabControl1.TabPages.Insert(I, Tab1)
        SortFlg = False
 
 
        '■元々開いていたタブを開く
        TabControl1.SelectedTab = Tab1
    End Sub


(実際のプログラム)

TabMoveTest
(クリックするとダウンロードが始まります)

※ダウンロードする際は自己責任でお願いします


以上です。

通常の移動のやり方と違うので「+」のマークは出ませんし
少々不恰好です。

が、多少不恰好でもとにかく移動機能が欲しい! の方には
オススメかなと。


※この並べ替えは後日アップ予定のフリーソフトに
 使用している機能です。


拍手[1回]

Posted by 若槻風亜 - 2016.03.13,Sun

(対象)VB2010(VB.NET)


テキストの保存・読み込みの方法はいくつか
あると思いますが、サイト主は9割方以下の
方法を使用しています。


<保存>
Using FileWrite As New System.IO.StreamWriter _
  (ファイルパス, Boolean, System.Text.Encoding.Default)
      FileWrite.WriteLine(保存内容)
End Using

FileWrite   ・・・ StreamWriter型の変数名
ファイルパス  ・・・ 保存先のパスとファイル名(拡張子つき)
Boolean   ・・・ True/Falseのいずれか。
           True  = 保存内容を末尾に追加
           False = 保存内容ですべて上書き

※複数書き込みをしたい場合は「Do-Loop」や
 「For-Next」で処理を回す
 



<読み込み>
Using FileRead As New IO.StreamReader _
  (ファイルパス, System.Text.Encoding.Default)
     Do Until FileRead.EndOfStream
           変数 = FileRead.ReadLine
     Loop
End Using

FileRead   ・・・ StreamReader型の変数名
ファイルパス  ・・・ 保存先のパスとファイル名(拡張子つき)
EndOfStream ・・・ Boolean型。「ファイルを読み終わるまで」
ReadLine   ・・・ 1行ごと読み込む。
            Read    = 1文字だけ読み込む
            ReadToEnd = 全て読み込む


変数に入れなくても直接コントロールに格納
可能ですが、一度変数に入れてから中身が空だったり
形式がそぐわない場合の判断時にちょっと
見やすくなります。




拍手[0回]

プロフィール
HN:
若槻風亜
性別:
女性
職業:
会社員
趣味:
創作、プログラミング
自己紹介:
仕事や個人で学んだことをまとめておきたかったがために備忘録ブログを立ち上げました。
あくまで自分が学んだこと・自分が出来たことなので、ご覧くださる場合は参照レベルでお願いします。
ブログ内検索
カレンダー
06 2017/07 08
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
P R
最新トラックバック
コガネモチ
フリーエリア



Template by mavericyard*
Powered by "Samurai Factory"
忍者ブログ [PR]