• 締切済み

ハイパーリンクの設定と外付けハードのドライブ番号関係を固定したい。

○現状1  家庭と職場で3台のパソコンをXP環境で活用し、外付けハードディスクにデータを保管する環境で家庭でも使用しています。(エクセルと一太郎)が、主なソフトで、ファイル数が多いので、使用するファイルをハイパーリンクで関係ファイルを関連づけています。 ○困っていること  ハイパーリンクで設定すると、使用環境に応じて外付けハードのドライブ番号(記号)が変わるので、思うようにリンクができず、必要なファイルが開けないのが実情です。 ○使用環境に関係しなで、円滑に外付けハードにリンクができる方法を教えてください。お願いします。

みんなの回答

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

#2~3です。その後も調べておりました。 ドライブのメーカーID等を取得するのは大変そうなので、ボリューム名を設定しておく事で、自動で仮想ドライブが設定できそうです。 なお、一度使ったドライブレターはPCをリセットするまでは無効になってしまう様なので、試用される際はご注意下さい。ご参考まで。 Function getDriveLetter(myVolumeName) Dim objFS, objDrv Set objFS = CreateObject("Scripting.FileSystemObject") For Each objDrv In objFS.Drives With objDrv If .IsReady Then If .volumeName = myVolumeName Then getDriveLetter = .DriveLetter Exit Function End If End If End With Next End Function Set WshShell = CreateObject("Wscript.Shell") msgbox "ドライブレター M を設定します" oldDriv=getdriveletter("ボリューム名") strWkcmd = "subst M: """ & oldDriv & ":\""" WshShell.Run strWkcmd, 0, True

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.3

#2です。 ちょっとずれていましたね。 1.ハイパーリンクはおよそ使いそうもないドライブレターで設定して下さい。 2.環境に応じて割り当てられたドライブレターに対して、環境に応じて、別のドライブレターを割り付けるスクリプトを実行して下さい。 hoge.vbsといった名前を付けて保存し、実行すると設定されます。 下記ではIドライブを、Mドライブに設定しています。 Set WshShell = CreateObject("Wscript.Shell") strWkcmd = "subst M: ""I:\""" WshShell.Run strWkcmd, 0, True USBメモリーで試したところ、動きました。 都度エディターでいじるのが面倒なら、コマンドラインから与えるとか、INPUTBOXから引数を渡すとか改良できそうに思いますが、ご自分でお調べ下さい。

  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

およそ使いそうもないドライブレターを、任意のフォルダーに割り当てる事が出来ます。hoge.vbsといった名前をつけて、スタートアップに登録してください。これを各環境に応じて設定しておくと良いと思います。 Set WshShell = CreateObject("Wscript.Shell") strWkcmd = "subst M: ""C:\???""" WshShell.Run strWkcmd, 0, True ネットワークドライブの設定を設定する場合は、下記の通りです。 会社でシステム部門の都合でサーバー上の場所が変わる事があったので、それ以来ハイパーリンクにはネットワークドライブを用いて、次回の変更時困らない様にしています。 Sub setNetDrive() Dim FS, WshNet Dim password Const strDrive = "M:" Const remotePath = "\\??????\??????" Set FS = CreateObject("Scripting.FileSystemObject") Set WshNet = CreateObject("WScript.Network") 'password = "パスワード" If Not FS.DriveExists(strDrive) Then WshNet.MapNetworkDrive strDrive, remotePath, False 'WshNet.MapNetworkDrive strDrive, remotePath, False, , password End If Set WshNet = Nothing Set FS = Nothing End Sub '<<Main routin>> 'ネットワークドライブ設定 setNetDrive 参考URLの一例です。VBSとかWSHで検索すると沢山みつかります。 http://www.happy2-island.com/vbs/

  • Safe_Mode
  • ベストアンサー率48% (1329/2725)
回答No.1

使用環境に依存させないなら、ドライブ文字を使ったリンクではなく \\コンピュータ名\共有ドライブ名\フォルダ名\ファイル名 というふうに フルパスで記述すればいいかと思いますが・・・ その外付けHDDを3台のPCで使うとなると・・・ 1つのPCから見たときに2つのフルパスを準備することになるので 面倒ですね。

関連するQ&A

専門家に質問してみよう