ちょっと便利な小技集(その2) |
********** 目 次 ********** 1.フォーマットダイアログを開く 2.メニューの下に3Dラインを引く 3.AVI(アニメーション)ファイルを表示する 4.画面等のスケールモード単位変換 5.文字列中の半角文字数・全角文字数を取得する 6. 7. 8.ちょっと便利な小技集(その1)へ移動 9. |
1.フォーマットダイアログを開く | |
VB初心者友の会に sugi さんが回答されておられましたフォーマットダイアログを呼び出すだけですが、簡単なので Private Sub Command1_Click() Shell "Rundll32 Shell32,SHFormatDrive" End Sub お奨めはできませんが、以下の方法でも可 (A:ドライブがフロッピーディスクの機種の場合) Shell "command.com /c format a:", 1 |
|
2.メニューの下に3Dラインを引く (106) | |
たいていのソフトはメニューの下に3Dラインがあるのですが、VBにはありません。 そこで、自分で引いてみました。これで少しは見栄えがよくなりますよ その1.フォームにLINEを書く方法 プロシージャを作成 Private Sub MeULine(myForm As Form) 'メニューの下に3Dラインを引く '表示が遅くなるが影に隠れると消えるので myForm.AutoRedraw = True myForm.Line (0, 0)-(Screen.Width, 0), vb3DShadow myForm.Line (0, 10)-(Screen.Width, 10), vb3DHighlight End Sub ラインを引くフォームのイベントに Private Sub Command1_Click() '使用時は Form_Activate or Load イベントにでも記入して下さい MeULine Me End Sub 又は表示するフォームが1つの場合 Private Sub Command2_Click() '使用時は Form_Activate or Loadイベントにでも記入して下さい Me.AutoRedraw = True Me.Line (0, 0)-(Screen.Width, 0), vb3DShadow Me.Line (0, 10)-(Screen.Width, 10), vb3DHighlight End Sub その2.LINEコントロールを使ったやり方 フォームにLineコントロールを2個配置し、下記プロパティを設定して下さい。 Private Sub Command3_Click() '使用時は Form_Activate or Load イベントにでも記入して下さい With Line1 .BorderColor = &H80000010 .BorderWidth = 1 .X1 = 0 .X2 = ScaleWidth .Y1 = 0 .Y2 = 0 End With With Line2 .BorderColor = &H80000014 .BorderWidth = 1 .X1 = 0 .X2 = ScaleWidth .Y1 = 15 .Y2 = 15 End With End Sub |
|
3.AVI(アニメーション)ファイルを表示する (038) | |
プロジェクト→コンポーネントで下記コントロールを追加 Microsoft Windows Common Controls-2 6.0 Animation コントロールを表示したい位置に貼り付ける filecopy.avi ファイルは VB6.0 のCDの中のGraphicsフォルダーの中のAVIsフォルダーの中にあります 上記ファイル以外にも色々収録されているので試して見て下さい。 Option Explicit 'SampleNo=038 WindowsXP VB6.0(SP5) 2002.05.02 Private Sub Command1_Click() 'AVI(アニメーション)ファイルを表示する Dim st As Long '表示ファイルの指定及びオープン Animation1.Open "c:fileCopy.avi" '再生開始 Animation1.Play '10秒間表示 st = Timer Do While Timer - st < 10 DoEvents Loop '再生を停止 Animation1.Stop 'ファイルをクローズ Animation1.Close End Sub 実行結果 ファイルの検索で *.AVI を探せば面白いファイルが見つかるかもそれらを、タイトルの画面にでも表示させたらどうですか? |
|
4.画面等のスケールモード単位変換 (123) | |
Option Explicit 'SampleNo=123 WindowsXP VB6.0(SP5)
2002.05.22 Private Sub Command1_Click() 'このマシンでのX方向のサイズ変換です With Form1 Label1.Caption = "1 ピクセルは " & .ScaleX(1, 3, 6) & " mmです" Label2.Caption = "100 Twip は" & .ScaleX(100, 1, 6) & " mmです" Label3.Caption = "100 Twip は " & .ScaleX(100, 1, 3) & " ピクセルです" Label4.Caption = "1 ピクセルは " & .ScaleX(1, 3, 1) & " Twip です" Label5.Caption = "567 Twip " & .ScaleX(567, 1, 6) & " mm です" Label6.Caption = "10 mm は " & .ScaleX(10, 6, 3) & " ピクセル です" Label6.Caption = "10 mm は " & .ScaleX(10, 6, 3) & " ピクセル です" Label7.Caption = "10 mm は " & .ScaleX(10, 6, 1) & " Twip です" Label8.Caption = "1 インチは " & .ScaleX(10, 5, 1) & " Twip です" Label9.Caption = "参考 このマシンでの水平方向の1ピクセル" & _ "あたりのtwip数は " & Screen.TwipsPerPixelX & " です" End With End Sub 'ScaleX、ScaleY メソッド 'Form オブジェクト、ピクチャーボックス (PictureBox) コントロール、 'または Printer オブジェクトの幅や高さの値を、ScaleMode 'プロパティに設定されている単位から別の単位に変換します。 '名前付き引数は指定できません。 |
|
5.文字列中の半角文字数・全角文字数を取得する | |
Option Explicit Private Sub Command1_Click() Dim nHan As Long Dim nZen As Long Dim nLen As Long Dim nByt As Long nLen = Len(Text1.Text) nByt = LenB(StrConv(Text1.Text, vbFromUnicode)) nHan = (nLen * 2) - nByt nZen = nLen - nHan Label1.Caption = "半角文字:" & nHan & " 全角文字は:" & nZen End Sub |
2003/04/20