Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


1897 / 13645 ツリー ←次へ | 前へ→

【71139】ファイル名変更について インザーギ 12/2/1(水) 13:30 質問[未読]
【71140】Re:ファイル名変更について sasa 12/2/1(水) 16:19 回答[未読]
【71141】Re:ファイル名変更について ちん 12/2/1(水) 16:30 発言[未読]
【71163】Re:ファイル名変更について インザーギ 12/2/3(金) 10:42 お礼[未読]

【71139】ファイル名変更について
質問  インザーギ  - 12/2/1(水) 13:30 -

引用なし
パスワード
   エクセルマクロについてご教授頂きたいのですが、社内サーバー内にある

\\Mh555\C:\仕事\data\test\backup\PDF\#7\内にアクティブブック名のPdfファイルが格納されています。

そのpdfファイル名をセルBB500に記載してある
文字列名+"__N1.pdf" or "__NF.pdf" 
に変更したいのですが、

Name ObjFs.FileExists(FileN) As ObjFs.FileExists(FileN & NewName)
でエラーが出てしまいます。

問題点と解決方法を教えて頂きたいのですが、宜しくお願いします。

最終的には
\\Mh555\C:\仕事\data\test\backup\PDF\#7\以外に
\\Mh555\C:\仕事\data\test\backup\PDF\#1\と
\\Mh555\C:\仕事\data\test\backup\PDF\#2\の
3つのフォルダ内のどれかにあるアクティブブック名のPdfファイルが格納されているものを上記のファイル名に変更したいと考えています。


Dim ObjFs As Object
Dim WbN As String
Dim FldN As String
Dim FileN As String
Dim OldName As String
Dim NewName As String
Dim NewNameFile As String
Dim prt3 As Integer


WbN = ActiveWorkbook.Name  ' 自ブック
  OldName = Range("BB500").Value

Set ObjFs = CreateObject("Scripting.FileSystemObject")
FldN = ""\\Mh555\C:\仕事\data\test\backup\PDF\#7\"
FileN = Dir(FldN & Replace(WbN, ".xls", "") & ".pdf")

If ObjFs.FileExists(FileN) = "" Then
Else
prt3 = MsgBox("1の場合は、「はい」、Finalの場合は「いいえ」を選択してください", _
vbYesNo + vbInformation, "統計表印刷実行")
Select Case prt
Case vbYes
NewName = (OldName & "__N1.pdf")
Case vbNo
NewName = (OldName & "__NF.pdf")
End Select

Name ObjFs.FileExists(FileN) As ObjFs.FileExists(FileN & NewName)

End If
End Sub

【71140】Re:ファイル名変更について
回答  sasa  - 12/2/1(水) 16:19 -

引用なし
パスワード
   > Name ObjFs.FileExists(FileN) As ObjFs.FileExists(FileN & NewName)
> でエラーが出てしまいます。
>問題点と解決方法を教えて頂きたいのですが、宜しくお願いします。

根本的にNameステートメントの記述が間違っています。
ヘルプを読んで下さい。

基本のNameステートメントのコードは以下のようになるでしょう。
Sub test2()
 Const PT = "\\Mh555\C:\仕事\data\test\backup\PDF\#7\"
 Dim oldpathname$, newpathname$
 oldpathname = PT & Replace(ActiveWorkbook.Name, ".xls", "") & ".pdf"
 newpathname = PT & Range("BB500") & "__N1.pdf"
 If Dir(oldpathname) <> "" Then Name oldpathname As newpathname
End Sub

【71141】Re:ファイル名変更について
発言  ちん  - 12/2/1(水) 16:30 -

引用なし
パスワード
   ▼インザーギ さん、。▼sasa さん:こんにちわ、ちんといいます:
さささんのいう通り、何点か不備があります。
サーバー名もおかしい気がします。
まず、Excelを起動したときのPath名を取得した方が良いと思いますので、
とりあえず、

Sub test()
  'アクティブウィンドウのブックのフォルダへの絶対パス
  Workbook_path = ActiveWorkbook.Path
  
  'アクティブウィンドウのブックのファイル名までの絶対パス
  Workbook_FullName = ActiveWorkbook.FullName

  Workbook_FullName = Replace(Workbook_FullName, ".xls", ".pdf")
  OldName = Range("BB500").Value
  If Dir(Workbook_FullName) = "" Then
   MsgBox "pdfファイルが存在しません。"
  Else
   prt3 = MsgBox("1の場合は、「はい」、Finalの場合は「いいえ」を選択してください", _
    vbYesNo + vbInformation, "統計表印刷実行")
   Select Case prt3
    Case vbYes
     NewName = Workbook_path & "\" & OldName & "_N1.pdf"
     If Dir(NewName) = "" Then
      Name Workbook_FullName As NewName
     Else
        MsgBox "既にファイルが存在します。"
     End If
    Case vbNo
     NewName = Workbook_path & "\" & OldName & "_NF.pdf"
     If Dir(NewName) = "" Then
      Name Workbook_FullName As NewName
     Else
        MsgBox "既にファイルが存在します。"
     End If
   End Select


  End If

End Sub

以上、参考までに・・・

【71163】Re:ファイル名変更について
お礼  インザーギ  - 12/2/3(金) 10:42 -

引用なし
パスワード
   迅速かつご丁寧な対応に感謝いたします。

お二方から頂いたコードを編集して運用しております。
なるべく自力でできるように励んでいきたいと思います。

1897 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free