VC6 Tips / C++とHファイルを取り替えるマクロ part2

ずーっと前、私のHPにc,cpp,h,hppを切り替えるマクロを用意していましたが、
それの改良版です。
しかし・・・、どうもスパグェツィ〜なコードのようで・・・。VBSって良くわからないです^^;
C言語のようなreturn文はないのかなぁ?
それができれば結構 万万歳 なんだけど・・・。


'-------------------------------------------------------------
'FILE DESCRIPTION:
'VBSなるものは良くわからないのでこんな冗長なスクリプトになって
'しまいましたq(T▽Tq)(pT▽T)p 
'だれか良い解説、リファレンスサイトを教えてください
' o_ _)o))懇願
'------------------------------------------------------------
Sub CppOpen2(sn,fs,cppll)
cl = len(sn)
s1 = left(sn,cl - cppll) + ".cpp"
s2 = left(sn,cl - cppll) + ".c"

if fs.FileExists(s1) then
Documents.Open s1, "Text" '開く
elseif fs.FileExists(s2) then
Documents.Open s2, "Text"
end if
'msgbox "cpp2" + sn + " "+ s1 + " " + s2
End Sub


Sub HppOpen2(sn,fs,cppll)
cl = len(sn)
s1 = left(sn,cl - cppll) + ".hpp"
s2 = left(sn,cl - cppll) + ".h"

if fs.FileExists(s1) then
Documents.Open s1, "Text" '開く
elseif fs.FileExists(s2) then
Documents.Open s2, "Text"
end if
'msgbox "hpp2" + sn + " " + s1 + " " + s2
End Sub


Sub OpenOpen(sn,s1,s2,fs,ic,icpp,ih,ihpp)
if fs.FileExists(s1) then
Documents.Open s1, "Text" '開く

elseif fs.FileExists(s2) then
Documents.Open s2, "Text"
else
sn = ActiveDocument.Path + "\" + "..\"
If ih=".h" then
sn = sn + "src\" + ActiveDocument.Name
Call CppOpen2(sn,fs,len(ih))

ElseIf ihpp=".hpp" then '現在がHPPなら
sn = sn + "src\" + ActiveDocument.Name
Call CppOpen2(sn,fs,len(ihpp))

ElseIf icpp=".cpp" then '現在が Cpp なら
sn = sn + "include\" + ActiveDocument.Name
Call HppOpen2(sn,fs,len(icpp))

ElseIf ic=".c" then '現在が C なら
sn = sn + "include\" + ActiveDocument.Name
Call HppOpen2(sn,fs,len(ic))
End if

End if
'MsgBox s1+" "+s2
End Sub

Sub CppOpen(sn,fs,cl,cppll,ic,icpp,ih,ihpp)
s1 = left(sn,cl - cppll) + ".cpp"
s2 = left(sn,cl - cppll) + ".c"
Call OpenOpen(sn,s1,s2,fs,ic,icpp,ih,ihpp)
End Sub


Sub HppOpen(sn,fs,cl,cppll,ic,icpp,ih,ihpp)
s1 = left(sn,cl - cppll) + ".hpp"
s2 = left(sn,cl - cppll) + ".h"
Call OpenOpen(sn,s1,s2,fs,ic,icpp,ih,ihpp)
End Sub


Sub CppHChanger2()
'DESCRIPTION: cpp と h を ボタンひとつで切り替えるやつです

sn = ActiveDocument.FullName
'現在編集中のファイル名
cl = len(sn) '現在のファイル名の文字数

icpp = right(sn , 4)
ihpp = right(sn , 4)
ic = right(sn , 2)
ih = right(sn , 2)

Dim fs
Set fs =CreateObject("Scripting.FileSystemObject")


'ChangeSub(ih,ihpp,icpp,ic,fs,cl,sn)
'現在が H なら
If ih=".h" then
Call CppOpen(sn,fs,cl,len(ih),ic,icpp,ih,ihpp)

ElseIf ihpp=".hpp" then '現在がHPPなら
Call CppOpen(sn,fs,cl,len(ihpp),ic,icpp,ih,ihpp)

ElseIf icpp=".cpp" then '現在が Cpp なら
Call HppOpen(sn,fs,cl,len(icpp),ic,icpp,ih,ihpp)

ElseIf ic=".c" then '現在が C なら
Call HppOpen(sn,fs,cl,len(ic),ic,icpp,ih,ihpp)
end if


'TODO: Put macro code here
End Sub

><