Excel VBA質問箱 IV

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

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


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

【36400】2つ上の階層に保存したい あや 06/3/30(木) 15:19 質問[未読]
【36401】Re:2つ上の階層に保存したい Blue 06/3/30(木) 15:30 回答[未読]
【36406】Re:2つ上の階層に保存したい Blue 06/3/30(木) 16:30 発言[未読]
【36403】Re:2つ上の階層に保存したい Kein 06/3/30(木) 16:13 回答[未読]
【36404】Re:2つ上の階層に保存したい Kein 06/3/30(木) 16:15 発言[未読]

【36400】2つ上の階層に保存したい
質問  あや  - 06/3/30(木) 15:19 -

引用なし
パスワード
   すみません、どなたか教えてください。
ファイルをactiveworkbookの2つ上の階層に保存したいのですが、よくわかりません。。
htmlとかですと"../"となるのですが、シート内の文字をtxtファイルで2つ上のフォルダに保存したい場合の記述方法はどのようにすればよいのでしょうか。

【36401】Re:2つ上の階層に保存したい
回答  Blue  - 06/3/30(木) 15:30 -

引用なし
パスワード
   カレントをAcitiveBook.Pathにして、"..\..\test.txt" とすれば保存できませんか?

例)

  Dim fn As Long
  
  ChDir ActiveWorkbook.Path
  ChDrive ActiveWorkbook.Path
  
  fn = FreeFile
  Open "..\..\test.txt" For Output Access Write As #fn
  Close #fn


他にも、ActiveWorkbook.Pathを文字列操作して、絶対パスにするのもありでしょうね。
もちろん、FileSystemObjectをつかって親ディレクトリ→親ディレクトリとして取得するのも可。

【36403】Re:2つ上の階層に保存したい
回答  Kein  - 06/3/30(木) 16:13 -

引用なし
パスワード
   単純な考え方で

Sub NewPath()
  Dim x As Long, y As Long
  Dim NewPh As String
 
  With ActiveWorkbook
   x = InStrRev(.Path, "\", -1)
   y = InStrRev(.Path, "\", x - 1)
   NewPh = Left$(.Path, y) & .Name
   .SaveAs MewPh
  End With
End Sub

【36404】Re:2つ上の階層に保存したい
発言  Kein  - 06/3/30(木) 16:15 -

引用なし
パスワード
   訂正。
>.SaveAs MewPh


.SaveAs NewPh

【36406】Re:2つ上の階層に保存したい
発言  Blue  - 06/3/30(木) 16:30 -

引用なし
パスワード
   >もちろん、FileSystemObjectをつかって親ディレクトリ→親ディレクトリとして取得するのも可。
のサンプル

Sub test()
  Dim objFSO  As Object
  Dim objFolder As Object
  
  Set objFSO = CreateObject("Scripting.FileSystemObject")
  
  Set objFolder = objFSO.GetFolder(ActiveWorkbook.Path).ParentFolder
  If objFolder Is Nothing Then Exit Sub
  Set objFolder = objFolder.ParentFolder
  If objFolder Is Nothing Then Exit Sub
  
  With objFSO.CreateTextFile(objFSO.BuildPath(objFolder.Path, "test.txt"), True)
    .WriteLine ("これはテストです。")
    .Close
  End With
  
  Set objFolder = Nothing
  Set objFSO = Nothing
End Sub

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