SAK 図書館
VB テクニック編17 - プリンタ一覧取得、プログレスバー、リストビュー
■SAK 関数利用規程
・テクニック編で紹介する関数は、私こと Y.SAK の開発関数である。
・著作権明示部分の改編は認めない。
・個人、企業がこれらの関数を使用したり、一部を使用して新たなシステムや
プログラムを開発することは自由です。
・但し、これらの関数を一部でも使用しているソフトウェアをシェアウェア、
その他有償プロダクトとして配布・販売するには、私の許可が必要です。
(無償のフリーソフトウェアなら、自由に配布しても良い。)
・これらの関数を使用して発生した、いかなる形での損害も私こと Y.SAK は
賠償しません。
■プリンタ一覧取得
・プリンタの一覧を得るには、次のようにする。
DeviceName で「EPSON PM-2000C」のようなプリンタ名が、
DriverName で「EPIJNL10」のようなドライバ名が参照できる。
dim p as variant
for each p in printers
print p.DeviceName & " " & p.DriverName
next
■プログレスバーコントロール
・プログレスバーコントロールは、次のように制御する。
ProgressBar1.Min は最小値、ProgressBar1.Max は最大値である。
ProgressBar1.Value で、現在の進捗状況をセットする。
(処理状況、進行状況、インジケータ、プロセスバー)
Dim i As Long
Dim tmsv As Double
ProgressBar1.Min = 0
ProgressBar1.Max = 100
For i = ProgressBar1.Min To ProgressBar1.Max
ProgressBar1.Value = i
Do Until Timer > tmsv
DoEvents
Loop
tmsv = Timer
Next
■リストビューコントロール
・リストビューコントロールへのデータ追加は、次のようにする。
複数選択を可能にするには、ListView1.MultiSelect = True にする。
ListView の ListItems の添字は 1 から始まるので注意する。
ListView1.ListItems.Add , , "abc"
ListView1.ListItems.Add , , "def"
ListView1.ListItems.Add , , "ghi"
ListView1.ListItems.Add , , "jkl"
・全データを選択するには、次のようにする。
dim l as variant
For Each l In ListView1.ListItems
l.Selected = true
Next
ListView1.SetFocus
・全データを未選択するには、次のようにする。
dim l as variant
For Each l In ListView1.ListItems
l.Selected = false
Next
ListView1.SetFocus
・先頭から連続で指定個数データをコードによって選択するには、次のように
する。この例では、先頭から 2 個のデータが選択される。
但し、既に選択されているデータはそのままである。
dim i as long
dim j as long
j = 2
if j > ListView1.ListItems.count then msgbox "添字オーバー"
For i = 1 to j
ListView1.ListItems(i).Selected = true
Next
ListView1.SetFocus
・先頭から連続で指定個数データだけをコードによって選択するには、次のよ
うにする。この例では、先頭から 2 個のデータが選択される。
既に選択されているデータは一旦未選択になる。
dim l as variant
dim i as long
dim j as long
For Each l In ListView1.ListItems
l.Selected = false
Next
ListView1.SetFocus
j = 2
if j > ListView1.ListItems.count then msgbox "添字オーバー"
For i = 1 to j
ListView1.ListItems(i).Selected = true
Next
ListView1.SetFocus
・任意の複数データだけをコードによって選択するには、次のようにする。
この例では、2 個と 4 個目のデータが選択される。
既に選択されているデータは一旦未選択になる。
dim l as variant
dim i as long
For Each l In ListView1.ListItems
l.Selected = false
Next
ListView1.SetFocus
i = 2
if i > ListView1.ListItems.count then msgbox "添字オーバー"
ListView1.ListItems(i).Selected = true
i = 4
if i > ListView1.ListItems.count then msgbox "添字オーバー"
ListView1.ListItems(i).Selected = true
ListView1.SetFocus
・選択データを処理するには、次のようにする。
ListItems.index は、先頭を 1 とした添字である。
ListItems.text は、データテキストである。
dim l as variant
cls
For Each l In ListView1.ListItems
if l.Selected then
print l.index & " " & l.text & " 選択"
else
print l.index & " " & l.text & " 未選択"
end if
Next
ListView1.SetFocus
■VB テクニック編資料
■VB 入門編資料
■VB 基礎編資料
■VB ビジュアル編資料