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合并 Excel单元格指定行列或单元格范围

《使用Python合并Excel单元格指定行列或单元格范围》合并Excel单元格是Excel数据处理和表格设计中的一项常用操作,本文将介绍如何通过Python合并Excel中的指定行列或单... 目录python Excel库安装Python合并Excel 中的指定行Python合并Excel 中的指定列P

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

通过C#获取PDF中指定文本或所有文本的字体信息

《通过C#获取PDF中指定文本或所有文本的字体信息》在设计和出版行业中,字体的选择和使用对最终作品的质量有着重要影响,然而,有时我们可能会遇到包含未知字体的PDF文件,这使得我们无法准确地复制或修改文... 目录引言C# 获取PDF中指定文本的字体信息C# 获取PDF文档中用到的所有字体信息引言在设计和出

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virtual disk”问题

《VMWare报错“指定的文件不是虚拟磁盘“或“Thefilespecifiedisnotavirtualdisk”问题》文章描述了如何修复VMware虚拟机中出现的“指定的文件不是虚拟... 目录VMWare报错“指定的文件不是虚拟磁盘“或“The file specified is not a virt

Oracle Expdp按条件导出指定表数据的方法实例

《OracleExpdp按条件导出指定表数据的方法实例》:本文主要介绍Oracle的expdp数据泵方式导出特定机构和时间范围的数据,并通过parfile文件进行条件限制和配置,文中通过代码介绍... 目录1.场景描述 2.方案分析3.实验验证 3.1 parfile文件3.2 expdp命令导出4.总结

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

遮罩,在指定元素上进行遮罩

废话不多说,直接上代码: ps:依赖 jquer.js 1.首先,定义一个 Overlay.js  代码如下: /*遮罩 Overlay js 对象*/function Overlay(options){//{targetId:'',viewHtml:'',viewWidth:'',viewHeight:''}try{this.state=false;//遮罩状态 true 激活,f

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

C#关闭指定时间段的Excel进程的方法

private DateTime beforeTime;            //Excel启动之前时间          private DateTime afterTime;               //Excel启动之后时间          //举例          beforeTime = DateTime.Now;          Excel.Applicat