Option Explicit
'VSSのiniファイルの場所
Private SRCSAFE_INI As String
'VSS接続のユーザID
Private USER_ID As String
'VSS接続のパスワード
Private USER_PASSWORD As String
'VSS Root
Private VSS_ROOT As String
'ファイル出力・
Private OUTPUT_DIR As String
'ファイルオブジェクト
Private mobjFileSystem As FileSystemObject
'機能名: VSSより、指定したファイルを取得するマクロ(パス入り)
'
Sub Macro1()
    On Error GoTo ErrorHandler
    Dim vssDB As New VSSDatabase
    Dim objItem As VSSItem
    Dim rowNumber As Integer
    Dim sheet As Worksheet
   
    Set mobjFileSystem = New FileSystemObject
    Set sheet = ThisWorkbook.Worksheets("VSSFM")'sheet name is VSSFM->VSS's file management
 
    '設定値取・
    Call GetSettingValues
   
    '行番号初期・
    rowNumber = 2
   
    'VSS接・
    vssDB.Open SRCSAFE_INI, USER_ID, USER_PASSWORD
   
    While sheet.Cells(rowNumber, 1) <> ""
        'CO対象かをチェック
        If sheet.Cells(rowNumber, 2) = "○" Then
            Set objItem = vssDB.VSSItem(VSS_ROOT & sheet.Cells(rowNumber, 8))
            Call OutputVSSItem(objItem)
        End If
        rowNumber = rowNumber + 1
    Wend
   
    Set vssDB = Nothing
    Set mobjFileSystem = Nothing
   
    MsgBox "ファイル取得が完了しました。"
   
Exit Sub                                ' エラー処理ルーチンが実行されないように Sub を終了します。
ErrorHandler:                           ' エラー処理ルーチン。
    Select Case Err.Number              ' エラー番号を評価します。
        Case -2147166577                ' エラーです。
            MsgBox "[" & VSS_ROOT & sheet.Cells(rowNumber, 8) & "] が見つかりません。"
            Resume Next                 ' エラーが発生した行から処理を再開します。
           
        Case Else
            Resume Next                 ' エラーが発生した行から処理を再開します。
    End Select
   
End Sub
'設定値を変数へ格納
Private Sub GetSettingValues()
    Dim sheet As Worksheet
   
    Set sheet = ThisWorkbook.Worksheets("設定")
   
    'srcsafe.iniの場所
    SRCSAFE_INI = sheet.Cells(3, 2)
    'VSS接続ユーザID
    USER_ID = sheet.Cells(4, 2)
    'VSS接続ユーザパスワード
    USER_PASSWORD = sheet.Cells(5, 2)
    'VSS Root
    VSS_ROOT = sheet.Cells(6, 2)
   
    'ファイル出・
    OUTPUT_DIR = sheet.Cells(7, 2)
   
End Sub
'指定フォルダへ最新バージョンのファイルを出力する処理
Private Sub OutputVSSItem(objItem As VSSItem)
    '出力先フォルダ設・
    Dim dir As String
   
    dir = CreateDir(objItem)
    objItem.Get dir & objItem.Name, VSSFLAG_EOLCRLF
End Sub
'出力先フォルダ作・
Private Function CreateDir(objItem As VSSItem) As String
    Dim i As Integer
    Dim dirs() As String
    Dim dir As String
   
    dirs = Split(objItem.Spec, "/")
    dir = OUTPUT_DIR
   
    For i = LBound(dirs) To UBound(dirs) - 1
        dir = dir & dirs(i)
        If Not mobjFileSystem.FolderExists(dir) Then
            Call FileSystem.MkDir(dir)
        End If
       
        dir = dir & "/"
    Next i
    CreateDir = dir
End Function

VSSより、指定したファイルを取得するマクロ(パス入り)的更多相关文章

  1. 程序定义了多个入口点。使用 /main (指定包含入口点的类型)进行编译

    原文:请使用/main进行编译,以指定包含入口点类型 在使用VS工具初学C#的时候需要不停的写小程序,觉得每次都新建项目太过麻烦,所以试着把程序写在一个项目下面,结果编译的时候出错了,因为我每个小程序 ...

  2. VSS - 版本管理起的学习 AND 使用

    局域网中用VSS.适用于Team级还可以,企业级不好,仅支持Windows 操作系统. Visual SourceSafe 是一个源代码控制系统,可以保存文件的不同版本,可以比较文件的差别,可以控制不 ...

  3. VSS使用方法详解

    Microsoft Visual SourceSafe是美国微软公司出品的版本控制系统,简称VSS.它提供了还原点和并行协作功能,从而使应用程序开发组织能够同时处理软件的多个版本.该版本控制系统引入了 ...

  4. 如何为WPF添加Main()函数 程序入口点的修改

    一般的.WPF的Main()函数是自动生成的,不过有时候我们需要为我们的应用程序传参.那么自动生成的Main()函数就不会满足我们的要求. 那么如何为WPF Application 设置Main()函 ...

  5. Intellij IDEA svn的使用记录

    这里的忽略一直灰色的,可以进入 这里的版本控制里进行忽略选择 或者 这里进行添加 这里有三个选择 按照顺序 1.忽略指定的文件 2.忽略文件夹下所有文件 3.忽略符合匹配规则的文件 到Commit C ...

  6. Android Studio 配置SVN实现代码管理

    Refference From:http://iaiai.iteye.com/blog/2267346 一.Android Studio配置SVN Android Studio关联配置SVN很简单,在 ...

  7. idea svn 的使用----转载,挺好的

    Intellij IDEA svn的使用记录 这里的忽略一直灰色的,可以进入 这里的版本控制里进行忽略选择 或者 这里进行添加 这里有三个选择 按照顺序 1.忽略指定的文件 2.忽略文件夹下所有文件 ...

  8. 10.Intellij IDEA svn的使用详解

    转自:https://www.2cto.com/kf/201703/614858.html 首先提一句,IDEA对各种的版本控制工具的支持是非常好的,打开系统设置界面,就可以看到他有专门的一栏 Ver ...

  9. Android Studio配置SVN 以及使用代码管理

    一.Android Studio配置SVN Android Studio关联配置SVN非常easy,在Settings里面.找到Version Control->Subversion.在这个页面 ...

  10. ASP.NET Core 中文文档 第三章 原理(14)服务器

    原文:Servers 作者:Steve Smith 翻译:谢炀(Kiler) 校对:许登洋(Seay).姚阿勇(Dr.Yao) ASP.NET Core 已完全从承载应用程序的 Web 服务器环境中分 ...

随机推荐

  1. SVM基本思想和对偶推导笔记-记录毕业论文1

    快毕业啦~~记得上一篇论文利用JointBoost+CRF做手绘草图的分割项目在3月份完结后,6月份去实习,9月份也没怎么认真找工作就立刻回来赶论文(由于分割项目与人合作难以写入毕业论文),从9月到1 ...

  2. yourphp问题中心

    1.前台读不出字段.数据库列表有的,但前台就适读不出来. 2.浏览次数+1与+2的问题 浏览+ <a href="{:URL('User-Register/index')}" ...

  3. 登录验证码编写(jsp+servlet+dao)

    一.什么是验证码及它的作用 验证码为全自动区分计算机和人类的图灵测试的缩写,是一种区分用户是计算机的公共全自动程序,这个问题可以由计算机生成并评判,但是必须只有人类才能解答. 可以防止恶意破解密码.刷 ...

  4. RabbitMQ 命令行

    用户命令 .添加用户 rabbitmqctl add_user username password .删除用户 rabbitmqctl delete_user username .修改密码 rabbi ...

  5. 改变Vim在iTerm2中的光标

    vim ~/.vimrc 添加 " Change cursor shape between insert and normal mode in iTerm2.appif $TERM_PROG ...

  6. java String 中 intern方法的概念

    1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值是null,所以String的默认值也是null:但它又是一种特殊的对象,有其它对象没有的一些特性. 2. ne ...

  7. solr6.1-----solrJ 程序管理索引库

    solrJ 是solr 提供的一个客户端,就是一个jar 包,把jar 添加到工程中整合solr 服务. 所需jar 包 D:\solr-6.1.0\dist 下面的 solr-solrj-6.1.0 ...

  8. 黑客攻防技术宝典Web实战篇(一)Web应用程序技术基础

    在开展Web应用程序渗透测试之前请先了解下面列出的这些内容,如果不是很懂的话,请读David Gourley & Brian Totty的HTTP权威指南也叫HTTP:The Definiti ...

  9. CSS浮动属性Float介绍

    #cnblogs_post_body h6 {font-size: 16px;font-weight: bold;} 什么是CSS Float? float 是 css 的定位属性.在传统的印刷布局中 ...

  10. Office 2010/2007 简繁体转换按钮不见了?

    注:此文章来自微软官方,原文链接:http://support.microsoft.com/kb/2459493/zh-tw 经测试可解决问题.——————————– 通常发生这样的问题,是由于繁简转 ...