|
▼UO3 さん:
>▼ピッポ さん:
>
>こんにちは
>
>質問の中にはいくつものポイントがありますね。
>このなかの、どこまでできて、どこがわからないというレベルですか?
>それとも、全くわあらないのでコードを教えてということですか?
>
>1.シート1のB列からループで、E列に"1ヶ月"と記述されレいる行のブック名を取り出す
>2.取り出したブック名がC列のハイパーリンクの規定の中にあるかどうかを判定する
>3.それに対応するシート2のハイパーリンク先を取得する。
> (この対応条件が、いまいち不明ですが。同じ行?あるいは、同じブック名をもつリンクを捜す?)
>4.フォルダ間でブックの移動を行う。
ご回答ありがとうございます。
表現が曖昧で失礼しました。
下記のコードをベースに作成を試みてみたのですが、
全くわからない為、教えて頂けないでしょうか?
3.について補足します。
シート1(ワークシート)とシート2は同じブック内にあり、
シート2に移動する前のファイル先が記載されています。
シート1に移動する後のファイル先が記載されています。
それと下記コードは移動するファイルを開いた時にセルA500に”済”と
記載してあれば、シート1のI列に"問題なし"もし、なければ
"問題あり”とできるようになっています。
こちらのコードも生かして頂きたいのですが。
Sub 転送()
Application.ScreenUpdating = False
'ファイル移動(transfer)
Dim ObjFs_tr As Object
Dim FldN_tr As String
Dim FldN_tr2 As String
Dim FileN_tr As String
Dim Cnt_tr As Integer
Dim Re_tr As Integer
Dim ans As String
Set ObjFs_tr = CreateObject("Scripting.FileSystemObject")
FldN_tr = "C:\記録\"
FldN_tr2 = "\\Svr\記録\保管\"
ans = "済"
With Range("B7") ' <-- File_Name指定セル
If .Text = vbNullString Then
MsgBox "記録名を確認してください。", vbCritical
Else
FileN_tr = Dir(FldN_tr2 & .Text & "*.xls")
Do Until FileN_tr = vbNullString
Workbooks.Open FldN_tr2 & FileN_tr
Worksheets(1).Select
If Range("A500") = ans Then
ActiveWorkbook.Close
.Offset(0, 7).Value = "問題なし"
If ObjFs_tr.FileExists(FldN_tr2 & FileN_tr) Then
ObjFs_tr.MoveFile FldN_tr2 & FileN_tr, FldN_tr
Cnt_tr = Cnt_tr + 1
End If
Else
ActiveWorkbook.Close
.Offset(0, 7).Value = "問題有り"
End If
FileN_tr = Dir()
Loop
End If
End With
MsgBox Cnt_tr & " 個のファイルを「Svr→書庫」に移動しました。", vbInformation
Set ObjFs_tr = Nothing
|
|