[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『(マクロ)ActiveWorkbook.Pathの結果を途中でカットしたい』(大粒いくら)
勉強中です。ご指導、よろしくお願いします。
ActiveWorkbook.Path を入力する事で、
C:\Users\user\Dropbox\doc\集計ファイル\クレジットカード管理
のように開いているワークブックのパスが拾えると思いますが、
C:\Users\user\Dropbox\doc
のように途中まででカットしたい場合は、どうすれば良いのか分かりません。
Path1 = ActiveWorkbook.Path
Path2 = \買掛金\買掛金管理表.xlsm
FPath = Path1 & Path2
結果→ C:\Users\user\Dropbox\doc\買掛金\買掛金管理表.xlsm
のようにしたいです。
書き方を教えて頂けると嬉しいです。
そもそも ActiveWorkbook.Pathを使うんじゃなくて、こういうのを使うんだよといったご指導でも嬉しいです。
よろしくお願いしますm(__)m
< 使用 Excel:Office365、使用 OS:Windows10 >
(もこな2) 2019/06/08(土) 11:03
(もこな2) 2019/06/08(土) 11:10
文字列操作という単語が分からなかったので、それで調べたところ、
Replace関数がバッチリ合いました♪
ありがとうございましたm(__)m
(大粒いくら) 2019/06/08(土) 11:53
Sub さんぷる1() Const MySTR As String = "あ\い\う\え\お"
'▼後ろから最初の「\」を探して、全体の何文字目か調べ、その1文字前までを取り出す Debug.Print Left(MySTR, InStrRev(MySTR, "\") - 1)
'▼後ろから2番目の「\」を探して、全体の何文字目か調べ、その1文字前までを取り出す Debug.Print Left(MySTR, InStrRev(Left(MySTR, InStrRev(MySTR, "\") - 1), "\") - 1)
End Sub
相対パス〜のほうは、調べてみたら複雑そうだったので別案。
FileSystemObjectというものを使います。
http://officetanaka.net/excel/vba/filesystemobject/
Sub さんぷる2() Dim FSO As Object Dim フォルダ As Object
Set FSO = CreateObject("Scripting.FileSystemObject") Set フォルダ = FSO.GetFolder(ThisWorkbook.Path)
'▼親フォルダの親フォルダのパスを取り出す Debug.Print フォルダ.ParentFolder.ParentFolder.Path
End Sub
(もこな2) 2019/06/08(土) 21:57
Sub test() Dim s As String Dim f As String
s = "C:\Users\user\Dropbox\doc\集計ファイル\クレジットカード管理" f = "\Dropbox\doc\"
s = Left(s, InStr(s, f) + Len(f) - 1) MsgBox s
End Sub
(マナ) 2019/06/08(土) 22:27
Sub test相対パス() Dim FilePath As String ChDrive ActiveWorkbook.Path ChDir ActiveWorkbook.Path ChDir "..\.." '<- 2階層上 ..で1階層 FilePath = CurDir MsgBox FilePath End Sub (seiya) 2019/06/09(日) 06:48
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.