下記のような質問が来ました(約1か月前、、、処理が遅れてます)
>エクセルからアウトルック-送信の際、
>本文にローカルLAN内のファイルのハイパーリンクを入れたい。
>可能でしょうか?
>
>Ken3さんのHPを参考に実施したらWEBページはリンクになるが、
>ローカルLAN内のファイルはただの文字になってしまいます。
-
-
-
- -
-
-
例) L: ドライブが LANディスク、ネットワークドライブに割り当てている場合
File://L:\フォルダー名\ファイル名
みたいに、
頭に FILE:// を 付ければ OKだと思います。
L:\報告書\10月.xls
なら
File://L:\報告書\10月.xls
で、参照できると思います。
'--- テストで作った サンプルプログラム 報告書.vbs ---
Dim oApp Dim myNameSpace Dim myFolder Dim objMAIL 'メールのオブジェクト Dim strMOJI '本文 'outlook 起動 Set oApp = CreateObject("Outlook.Application") Set myNameSpace = oApp.GetNamespace("MAPI") Set myFolder = myNameSpace.GetDefaultFolder(6) '規定のフォルダーを指定 myFolder.Display '表示 いつものクセで .Visible = True とやりがちだけど 'メールアイテムの作成 Set objMAIL = oApp.CreateItem(0) 'olMailItem=0 直値はいけないと思いつつ、 objMAIL.Display '画面表示(Mail入力、編集画面を表示) '宛先・件名・本文 などのデータを代入する objMAIL.To = "test@ken3.org" '宛先 ほかに.cc や.Bccも可能です objMAIL.CC = "vba@ken3.org" '宛先 .cc objMAIL.Subject = "報告書をネットワークに保存しました 確認してください。" '.Subjectに文字列設定で件名 '本文を作る、(vbCrLfで改行されます) strMOJI = "こんにちは(このメールtestアドレスなので質問は別便で)" & vbCrLf _ & "報告書をLANの共有スペースに保存しました。" & vbCrLf _ & "ケース1 (イントラネットなど http 〜 の場合) " & vbCrLf _ & " http://d.hatena.ne.jp/ken3memo/201010/ " & vbCrLf _ & "" & vbCrLf _ & "ケース2 (L:などLAN上のスペースにドライブが割り当ててある場合) " & vbCrLf _ & " file://L:\報告書.xls " & vbCrLf _ & "" & vbCrLf _ & "ケース3 (\\サーバー名\共有名 など \\で書く場合) " & vbCrLf _ & " file://\\Server1\HOME\Ken3\報告書.xls " & vbCrLf _ & "" & vbCrLf _ & Now() & "作成" objMAIL.Body = strMOJI '本文の代入 objMAIL.Display '編集画面のまま止めておきたい時 や テスト中に動作を見たいとき '保存などのアクション ※ここでは、確認のため、↑の表示で下はコメントで実行しない 'objMAIL.Save '保存、下書きへ 保存後、用が無かったら.Closeで閉じるのがいいのかなぁ。。。 'objMAIL.Close 2 '閉じる Mailの編集画面を閉じる 'objMAIL.Send '送信箱へ ※セキュリティの警告メッセージが出るよ 'ここで、普通はオブジェクトの開放など、後始末をする。 '--- ここまで
いつもの テスト動画(実行結果)
Outlook File://を付けてファイルにハイパーリンクを付ける
http://www.youtube.com/watch?v=o0Z4zcS1uDg