さて、先の最終宿題で沖田君が準備したシートの構成
・取引先、商品名など補助的なデータ
・日々の売上(I出荷)、仕入(入荷)のメインとなるデータベース
・入力する内容、ボタンなどを配置したシート(作業用)
・納品書、請求書など印刷のためのシート
ですが、他にも二つシートを準備しておきましょう。
先に紹介しました
・作成したファイルの操作方法など説明のシートです。
と今回紹介します。
・いろいろな初期設定など情報を記述しておくシートです。
です。
・ファイルを取り込む、書き出す際のフォルダ 或いは ファイル名など
・使用可能なプリンターの一覧、使用するプリンター名
・関連して使用するファイル名とパスワード
・IEで使用するURL と パスワードなど
VBAで機能が増えてくると
他のファイルへの連携、Webシステムへログインなど
が必要になります。
VBAのコードに ファイルへのパスやファイル名記述する方法は避けて
シート上に必要な情報を記述しておきます。
後々に変更になった際に、コードを編集することなく運用が出来ます。
フォルダやファイルの選択のダイアログは多数ありますが
フォルダの選択
If FileDialog(4).Show = True Then
Range("D3").Value = Applivation..FileDialog(4).SelectedItems(1)
Else
MsgBox "キャンセルされました"
End If
ファイルの選択
If FileDialog(3).Show = True Then
Range("D5").Value = Application.FileDialog(3).SelectedItems(1)
Else
MsgBox "キャンセルされました"
End If
が一番シンプルです。
パソコンに接続されているプリンター名の一覧は
'変数の定義
Dim tempShell As Object
Dim tempObj As Object
Dim i As Integer
Set tempShell = CreateObject("Shell.Application")
i = 2
For Each tempObj In tempShell.NameSpace(4).Items
Range("H" & i).Value = tempObj.Name
End If
i = i + 1
Next
Set tempShell = Nothing
Dim tempShell As Object
Dim tempObj As Object
Dim i As Integer
Set tempShell = CreateObject("Shell.Application")
i = 2
For Each tempObj In tempShell.NameSpace(4).Items
Range("H" & i).Value = tempObj.Name
End If
i = i + 1
Next
Set tempShell = Nothing
でH列に記述して
必要なプリンター名を入力規則のリストから選択します。
その他に、パソコンごとに異なる CDドライブの検索なども
必要になるかもしれません。
Set myDrives = FSO.Drives
For Each myDrive In myDrives
If myDrive.DriveType=4 then
If myDrive.IsReady Then
Exit For
Else
MsgBox "CDドライブの準備が出来ていません"
Set FSO = Nothing
WScript.Quit
End If
End If
Next
こんな感じです。
この設定のシートとVBAが完成しましたら
もちろん、他のファイルにコピーして使います。