VSSより、指定したファイルを取得するマクロ

2023-11-30 23:38
文章标签 指定 取得 vss

本文主要是介绍VSSより、指定したファイルを取得するマクロ,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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より、指定したファイルを取得するマクロ(パス入り)
'作成者: SHSC
'作成日: 2006/01/13
'修正履歴:YYYY/MM/DD Name Content
'
'
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("RTM")

'設定値取得
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)
'Call CheckOutVSSItem(objItem)
Call CheckInVSSItem(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 Sub CheckOutVSSItem(objItem As VSSItem)
Dim dir As String
dir = CreateDir(objItem)
objItem.CheckOut "", dir & objItem.Name, VSSFLAG_REPREPLACE
End Sub

Private Sub CheckInVSSItem(objItem As VSSItem)
Dim dir As String
dir = CreateDir(objItem)
objItem.CheckIn "", dir & objItem.Name, VSSFLAG_UPDUPDATE
End Sub

'出力先フォルダ作成
Private Function CreateDir(objItem As VSSItem) As String
Dim i As Integer
Dim dirs() As String
Dim dir As String

Dim file As String
file = objItem.Spec
file = Replace(file, "$/50Source", "")

dirs = Split(file, "/")
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より、指定したファイルを取得するマクロ的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/438977

相关文章

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

python获取指定名字的程序的文件路径的两种方法

《python获取指定名字的程序的文件路径的两种方法》本文主要介绍了python获取指定名字的程序的文件路径的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 最近在做项目,需要用到给定一个程序名字就可以自动获取到这个程序在Windows系统下的绝对路径,以下

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

java -jar example.jar 产生的日志输出到指定文件的方法

《java-jarexample.jar产生的日志输出到指定文件的方法》这篇文章给大家介绍java-jarexample.jar产生的日志输出到指定文件的方法,本文给大家介绍的非常详细,对大家的... 目录怎么让 Java -jar example.jar 产生的日志输出到指定文件一、方法1:使用重定向1、

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

python3如何找到字典的下标index、获取list中指定元素的位置索引

《python3如何找到字典的下标index、获取list中指定元素的位置索引》:本文主要介绍python3如何找到字典的下标index、获取list中指定元素的位置索引问题,具有很好的参考价值,... 目录enumerate()找到字典的下标 index获取list中指定元素的位置索引总结enumerat

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以