OPTION設定
- 2008/08/20 08:11
- カテゴリー:大会支援(ドッチボール)
今回はOPTIONの設定です。
VBAにて印刷を行う場合の、プリンタを設定するシートです、大会支援の時も使っていました。
なぜこれが必要かと言うと、印刷するシート毎にプリンタを変えたいからなんですね~。
今回は、掲示と賞状ぐらいにしか使っていないんですが、大会支援の時は、決勝トーナメントの対戦相手が決まり次第、対戦表の自動印刷と掲示用の仮想プリンタへ出力していたんで、プリンタを自動で切り替える必要があったんです。
まあ、これは私のこだわりと言えばそれまでなんですけど、大会支援を作ってるときに、予選は印刷、決勝は手書きなんてレベルの合わないことをしたくなかったんでね、VBAを使わなくても難しくはないんですが、入力軽減ですよ、何処で時間を稼ぐかですね、一見印刷しているのは遅く見えるんですが、集計するときに余計な事を考えないでいいのと入力規則が一定なんで、トータル早いんですよ本当は、でも判ってもらえないな~
さて、愚痴はこれくらいにしてOPTIONの内容に入ります。
まず画面右のEセルの説明からです。
このセルには、今現在エクセルが稼動しているパソコンのプリンタ名が、取得ボタンにより入ります。
Dim objWshNet As Object
Dim objWshPrinter As Object
Dim i As Integer
Set objWshNet = CreateObject("WScript.Network")
Set objWshPrinter = objWshNet.EnumPrinterConnections
j = 4
If objWshPrinter.Count < 2 Then
Worksheets("Option").Range("E4").Value = "プリンタは接続されていません"
Else
For i = 0 To objWshPrinter.Count - 1 Step 2
Worksheets("Option").Range("E" & j).Value = ""
Worksheets("Option").Range("E" & j).Value = objWshPrinter(i + 1)
j = j + 1
Next i
End If
これは、VBA単体ではなく、VBAからWSH.NETを使い現在インストールされているプリンタ名を取得します。
以前にも書きましたが、EXCEL97の時はこれに接続ポート名が入ってきましたが、現在はポート名は無く、プリンター名だけでいいようになりました。
次に、取得したプリンタ名を選択(セルを選択)し、セルCの上の、選択ボタンを押せば、その項目に選択したセルのプリンタ名が入ります。
選択ボタンから呼び出し
printer_set 4
Sub printer_set(p_no As Integer)
With ActiveCell
i_y = .Row
i_x = .Column
If i_x = 5 Then
If i_y >= 4 Then
If i_y <= 40 Then
Worksheets("Option").Range("B" & p_no).Value = ActiveCell.Value
End If
End If
End If
End With
End Sub
B24セルのバーコード使用は、バーコード印刷と入力を使うかどうかの設定です。
無にした場合は、バーコードは印刷されません。
あと、掲示用に現在の進行状況をコート毎と全体で表示したものがあるんですが、今回は説明は省略です。
teernesyday
Всегда сохраняется возможность, что на справедливый и добрый поступок оказал влияние эгоистический мотив.