**共有フォルダでWiki [#i7844159]
~Webサーバを使えないオフィスでWiki(もどき)を構築して情報を共有したい。それは私。
~MS-AccessとMS-Word、VBAでWikiEngineを構築できないか?と妄想中。とりあえず妄想だけだが。
-ファイル名は「WikiName.doc」で保存。
-フォルダ内のファイル名をVBAでリストアップしてインデックスを作成。あ、Accessいらないか?
-ファイルを開いたタイミングで、VBAプログラムを起動。フォルダ内のファイル名を元に本文中の該当部分にハイパーリンクを設定。
***使えそうなコード(VBA) [#h85b15cd]
-文字列を検索・選択
With Selection.Find
.ClearFormatting
.MatchWholeWord = True
.MatchCase = False
.Execute FindText:="test"
End With
-ファイルのフルパスから、ファイル名だけを取り出す
Public Function ls(Path As String)
Dim MyPos As Integer
Dim Length As Integer
If Path = "" Then Exit Function
Length = Len(Path)
MyPos = Len(Path)
Do Until Right(Left(Path, MyPos), 1) = "\"
MyPos = MyPos - 1
Loop
ls = Right(Path, Length - MyPos)
End Function
-Pathで指定されたフォルダ内のdocファイルの一覧を取得する
Function GetDirList(Path As String) As Variant
Dim file As String
Dim list(20) As String ' もっと大きく
Dim i As Integer
i = 0
if Right(Path, 1) <> "\" then
Path = Path + "\"
end if
file = Dir(Path + "*.doc", vbNormal)
Do While file <> ""
' 指定されたフォルダ以下のすべてのwordファイルを取得
If (file <> "." And file <> "..") Then
list(i) = file
i = i + 1
End If
file = Dir
Loop
GetDirList = list()
End Function
~Functionから配列を返すためにVariant型を使っている。
-Wordファイルを読み込んだ直後にVBAを実行するには
Function AutoExec()
...
End Function
***コメント [#c32f686f]
-[[名無しさん]] &new{2003-01-28 (TUE) 23:39:36};
~FrontPage とか NetscapeComposer で書くってのはどうでしょう。HTMLの表現力を余すことなく使えますね。Wiki の特殊フォーマットも覚えなくて済むし。
-[[名無しさん]] &new{2003-01-29 (WED) 01:31:17};
~大変いい考えですが、私の職場ではMS-FrontPageなどのHTMLエディタはインストールされていないのです。みんなに使い方を教えるのも大変だし。というわけで使い慣れたWordでWiki(もどき)を構築できないか考えた次第。問題はいかにして本文中のWikiNameを対応するファイルへのリンクに変換するか・・・VBAを使えばできるんじゃないかなぁと思っているのですが、ワシVBA知らないんだよなぁ。少し勉強しないと。
-[[名無しさん]] &new{2003-01-29 (WED) 01:39:07};
~http://yaino.com/gzudoc2/0001/000026.html とか、ニーズはあるみたいなんで、もしかしたら探せばあるかも。PalmWiki みたいにシステム全体に適用できるようなのがあったら欲しいと思う。
-[[名無しさん]] &new{2003-03-30 (SUN) 22:08:28};
~http://ikeyasu.hp.infoseek.co.jp/ WordでWikiを作った方がいらっしゃいます。すんばらすい。
-[[名無しさん]] &new{2004-03-10 (WED) 00:59:00};
~http://www.forgetmenot.jp/index.cgi?page=VBScript%A4%C7wiki VBScriptで書いてみました。泥縄で恥ずかしいのですが。
#comment