• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定ホルダのショートカットをデスクトップに作成)

指定ホルダのショートカットをデスクトップに作成する方法

このQ&Aのポイント
  • 会社オリジナルのプログラムでデータをエクセルに保存し、検索用として使用していますが、データのホルダを探すのに時間がかかっています。
  • そこで、エクセルで指定ホルダのショートカットをデスクトップに作成する方法を教えていただきたいです。
  • 現在はWindows2000とエクセル2003の環境です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

>問題なのは作成したファイルを使用する場合、保存フォルダからあいうえおで区分されたフォルダに行き、……追加ファイルを保存する際も、保存先を同様に探っていかなければならないことです。 >……作業後の保存の際、フォルダを探す手間が省けることから…… つまり、保存先のフォルダはあらかじめ作製済みだが、No.4 で回答したとおり保存の前にフォルダへのパスをコピーしておくにしても、数が多いからか、そのフォルダを探すだけでも大変、という意味でしょうか? そうであれば、デスクトップにショートカットというのも良いとは思いますが、フォルダを開くためのハイパーリンク集を Excel シートで作製してみてはどうでしょうか。例えば添付図のような感じです。 フォルダを新たに作製するたびに、この表にも番号・顧客名を追加しておきます。以後、ハイパーリンクを 1 回クリックするだけで、そのフォルダが開きます。 「顧客の書類」というフォルダが D ドライブ直下にあり、その下に「斉藤123」フォルダを作ったとします。 A3 123 B3 斉藤 D3 =b3&a3 E3 =hyperlink("D:\顧客の書類\"&d3) いやそうじゃなくて、やっぱりどうしてもショートカットを作りたいんだという場合は、次のような感じのコード。No.4 の参考 URL のコードを多少編集しただけのものです。フォルダをどんなふうに作って利用しているのか十分に分からないので、コード中のフォルダ名「CtmF」はとりあえず手書き(コピペ)するようにしてあります。 Option Explicit Sub Sample1()   Dim WSH, sc, DeskTopPath As String, scName As String, CtmF As String   Set WSH = CreateObject("WScript.Shell")   CtmF = "斉藤123"  'この行に新規作成したフォルダ名を上書きするか、他の何らかの方法で取得   DeskTopPath = WSH.SpecialFolders("Desktop")   scName = DeskTopPath & "\" & CtmF & ".lnk"   Set sc = WSH.CreateShortcut(scName)   sc.TargetPath = "D:\顧客の書類\" & CtmF  '「&」以前のパスを実際のものに書換え   sc.Save   Set sc = Nothing   Set WSH = Nothing End Sub

lovelager
質問者

お礼

お時間使っていただきどうもありがとうございました。作成しようとしていたのは、まさしく後者でした。 重ね重ね本当にありがとうございました。

その他の回答 (6)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.7

私も他の回答者さん同様に、 「ショートカットを作る目的・意義」が良くわからないので、 その他のやり方になってしまいます。 ひとまず、準備です。 下記のように「顧客名・顧客番号」を配置しておきます。     A        B        C 1  顧客名    顧客番号    頭文字 2  斉藤      123       さ 「頭文字(C2)セル」には「=LEFT(PHONETIC(A2),1)」という式が入っています。 同時にA2セルには、書式→ふりがな→設定 から、種類を「ひらがな」を設定しています。 B2セルは念のため、表示形式を文字列に設定してあります。 入力すべきセルは、A2とB2です。 で、VBA。 Sub Sample() Dim myPath As String Dim myFile As Variant     myPath = "C:\"    '親フォルダを指定     myPath = myPath & Range("C2") & "\" & Range("A2") & Range("B2")     ChDir myPath     myFile = Application.GetOpenFilename( _         FileFilter:="Excel ファイル (*.xls),*.xls")     Workbooks.Open Filename:=myFile End Sub これでエクセル上で「開く」フォルダを設定できますが、こういう意味ではないのでしょうか? 一度開いておけば「名前をつけて保存」する際にもコレを保持します。 どうしてもショートカットに拘るとしても、 デスクトップで右クリック→新規作成→ショートカット 「項目の場所」に「C:\親フォルダ\さ\斉藤123\」と打つだけです。 わざわざエクセルを起動し、マクロを走らせ・・・と手間をかける必要は無いように思いますよ。

lovelager
質問者

お礼

解決できました ありがとうございました

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

>そしてエクセルでデータごとにフォルダを作成し、データをそのフォルダに入れて それなら最初から最後まで、全部やらせりゃイイだけです。 sub macro1()  dim myRoot as string  dim myName as string  dim s as string  myroot = "c:\Test\" ’適切に指定する事  myname = "斉藤123" ’具体的な取得手段は適宜作成する事  s = strconv(left(application.getphonetic(myname), 1), vbhiragana)  on error resume next  mkdir myroot & s  mkdir myroot & s & "\" & myname  activeworkbook.saveas filename:=myroot & s & "\" & myname & "\" & myname & ".xls" end sub #あーでもExcel2003は大丈夫ですが、Win2kで動いたかはやってみてください。

lovelager
質問者

お礼

解決しました ありがとうございました 

lovelager
質問者

補足

ご教示ありがとうございます。 ただ、フォルダ自体はすでにできており、そのフォルダのショートカットをデスクトップに作成したい、という状況です。

回答No.4

他の皆さんと同様に私も、ご質問の趣旨が今一つ分かりかねている状況ですが。 お困りなのは、「データを保存する際、いちいちそのフォルダを探してから保存」という作業が大変であり、それの何が大変かと言えば、保存のダイアログにおいて、ダブルクリックで保存先を探しながら次々に深い階層のフォルダまで潜っていくのが手間だから、ということでしょうか? ということは、もしもパッと保存先にたどり着ける操作方法があるならば、必ずしもショートカットを作る必要はないということでしょうか?そうだとして説明します。 まず保存先のフォルダを開きます。この説明では、C ドライブの下層に作られている「YAMADA Taro」というフォルダだということにします。フォルダの最上部にあるアドレスバーには、そのフォルダへのパスが表示されています。ここを右クリックし、「アドレスをテキストとしてコピー」します。すると、「C:\Users\YAMADA Taro」といった感じの文字列がコピーされます。もし頻繁にこの文字列を使いたいなら、メモ帳などで保存しておくとかは、ご自由に。 目的のデータ保存は保存のダイアログから行いますが、その際に、上のフォルダは閉じてしまっていても差し支えありません。今コピーした文字列をダイアログの「ファイル名」欄に貼り付けます。Ctrl+V または右クリックからできます。続けて Enter を押すと、上のフォルダがダイアログ内で開きます。 保存したいファイル名が「検索用データ」だとします。Windows Vista 以降であれば、ダイアログ内でフォルダが開くものの、Enter を押すと同時に、入力した文字列が「ファイル名」欄から消えているので、同じ欄に単に「検索用データ」と記入して保存します(Enter)。Windows XP 以前では Enter 後も欄に文字列が残っているので、その文字列の最後尾に「\検索用データ」と追記して Enter します。質問者さんの場合は 2000 とのことですから、後者でしょうね。 上のとおり保存した後、「YAMADA Taro」フォルダを開いて確認してみると、.xls の拡張子で保存したのであれば、「検索用データ.xls」というファイルが入っているはずです。 何回もダブルクリックするのに比べれば、操作の負担感は減るかと思います。保存先は毎回少しずつ異なるということなら、パスの中で共通した部分の文字列をコピーしてダイアログ上で開いてもいいでしょう。 なお、こういう話ではなくて、何らかの理由でやはりショートカットを作りたいんだというのであれば、WSH.CreateShortcut メソッドというのを使えば、参考 URL みたいな感じでできます。作るショートカットの TargetPath プロパティに好きな文字列を設定することもできますから、「指定ホルダ」とかいう場所へのパスを書き込むこともできるでしょう。必要な場合は、ご質問を補足してください。

参考URL:
http://officetanaka.net/other/extra/tips12.htm
lovelager
質問者

補足

説明不足で申し訳ありません。 会社オリジナルの顧客管理プログラムがあり、それがそれぞれの顧客の書類をワード、エクセルで出力しています。その書類を保存する際、保管フォルダ内にあらかじめ作られた「あ」フォルダ、「い」フォルダ、、、にそれぞれ顧客名の最初の文字で区分けし、顧客名&番号を名前とするフォルダを作成し、そのフォルダに入れて保存しています。斉藤123 なら「さ」フォルダ内に斉藤123フォルダを作り、この中に斉藤123のデータを保管しているということです。 しかし会社オリジナルプログラムはサーバーが遅く、検索条件も少ないことから検索に非常に時間がかかるため、そのデータをエクセルに落としてエクセルで検索し、顧客番号を得て、その顧客番号で会社オリジナルのプログラムを検索しています。 問題なのは作成したファイルを使用する場合、保存フォルダからあいうえおで区分されたフォルダに行き、そこで当該顧客名のフォルダを探さなければならず、またすでに顧客名&番号名のフォルダを作成した顧客について追加ファイルを保存する際も、保存先を同様に探っていかなければならないことです。そこで、エクセル側で、個別データフォルダのショートカットをデスクトップに作ることができれば、直ちに必要な顧客フォルダーを開くことができ、また会社オリジナルプログラムで作業する前に、毎回デスクトップに作業する顧客フォルダのショートカットを作成すれば、作業後の保存の際、フォルダを探す手間が省けることからこのコードが必要となりました。保存後は毎回作成したショートカットを削除する予定です。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

Excel2003でしたら。 名前を付けて保存ダイアログ上で指定のフォルダを選択、ダイアログのツールメニューから「マイプレースに追加」することで、ダイアログ左側の保存先一覧に指定のフォルダをどんどん追加していくことができます。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

>「指定ホルダのショートカットをデスクトップに作成」のコードをご教示ください。 目的がいま一つ理解できないのですが、デスクトップにフォルダのショートカット作成のVBAコードなら以下のページが参考になると思います。 http://www.nurs.or.jp/~ppoy/access/access/acEt029.html ただしfilePath の部分はfilePath = "C:\windows"のようにフォルダのパスを指定してください。 また、表示したいアイコンの場所や、名前も適宜変更してください。

lovelager
質問者

補足

ありがとうございます。まさしくこの参考ページをさがしておりました。 セル(1,1)の値のフォルダが、aaaフォルダにあるとしそのフォルダのショートカットを セル(1,1)の値名でデスクトップに作成するためアイコン作成を省き、手を加えていきフォルダ名 指定とするとオートメーションエラーとなってしまいました。 改めてご教示いただけないでしょうか Sub setShortCut() 'デスクトップにファイルのショートカットを作成する Dim myWSH As Object 'WScript Dim link As Object Dim DesktopPath As String Dim filePath As String '対象ファイルのフルパス Dim strIcon As String 'ショートカットファイル名 Dim fname As String 'フォルダ名 fname = Cells(1, 1) 'セル1,1の値のフォルダ名 filePath = "C:\Users\mic\Documents\aaa" & "\" & fname strIcon = fname Set myWSH = CreateObject("WScript.Shell") DesktopPath = myWSH.SpecialFolders("Desktop") Set link = myWSH.CreateShortcut(DesktopPath & "\" & strIcon) Set myWSH = Nothing: Set link = Nothing End Sub

  • koko88okok
  • ベストアンサー率58% (3839/6543)
回答No.1

次のように操作してみて下さい。 1) 当該のフォルダの上で右クリックします。 2) 表示される右クリックメニューの「送る」をポイントして「デスクトップ(ショートカットを作成)」を選択します。 3) デスクトップにそのフォルダのショートカットが作成されます。 上記のようなことですか? 「デスクトップにショートカットアイコンを作成する方法を教えてください。」 https://www.fmworld.net/cs/azbyclub/qanavi/jsp/qacontents.jsp?PID=7804-6259#case3

lovelager
質問者

お礼

解決できました ありがとうございました

lovelager
質問者

補足

ご回答ありがとうございました。 お伺いしたいのは、300近く作成したフォルダの中から指定したフォルダのショートカットを VBAで作成するということです。説明不足ですみません

関連するQ&A