• ベストアンサー

DOSコマンドでファイルのショートカットを作る方法

VBAでファイル名に日付を含むExcelファイルを日々作り出し、それと共にそれを起動するショートカット(名前は固定)を更新したいのですが、VBAからDOSコマンドを実行する方法は判ったのですが、DOSコマンドでショートカットを作る命令が在るのかどうかわかりません。またVBAから他に簡単な方法で同じことが出来る方法が在りますでしょうか?

noname#227089
noname#227089

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

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

WSHを使うのが簡単です。 例えば、VBAで以下のような感じでします。 public sub mkupShortcut() Dim objWshShell, objShortcut Set objWshShell=CreateObject("WScript.Shell") 'CreateShortcut(ショートカットを作るフォルダ & ショートカット名(拡張子が.lnk)) サンプルはディスクトップ Set objShortcut=objWshShell.CreateShortcut(objWshShell.SpecialFolders("Desktop") & "\ショートカット名.lnk") 'ショートカットを付けるファイル、付け替えれば更新になる。 objShortcut.TargetPath="C:\Excel\test.xls" objShortcut.Save End Sub

noname#227089
質問者

お礼

ありがとうございます。早速試してみて目的のことができる様になりました。WSHというのはWindowsShellの略ですか?便利なものがあるのですね。少し勉強してみたいと思いました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

>WSHというのはWindowsShellの略ですか? WindowsScriptingHost の略です。 VBAのようなスクリプトでウインドウズを制御するというような バッチの拡張したようなモノです。

関連するQ&A

  • DOSコマンドでの日付選択ファイル削除

    DOSのファイル削除コマンド(DELあるいはERASE)にファイル更新日付による選択オプションを与えるようなことはできないのでしょうか。 一定期間以上前のLogファイルや一時保存ファイル等を定期的に自動削除していくタスクスケジュールを組みたいのです。具体的には、特定フォルダ内の、例えば1ヶ月以上前に更新されたファイルのみ指定して削除するDOSコマンドオプションがあれば、これを使ったバッチプログラムファイルを作り、それをタスクスケジューラで定期的に実行する形式にしたいと考えています。 もしDOSコマンドによる方法が不可能な場合、他に簡単でいい方法があったらご教示いただければ助かります。

  • DOSコマンド

    dosコマンドを入力して、Enterを押したとき、数分後に実行される命令はないですか?

  • DOSコマンドで実行させたプログラムのhWndの取得方法

    こんにちわ セキュリティの問題上、VBA以外のアプリを利用出来ない環境で 毎日、100個くらいのExcelのマクロを実行しなければならなくて 困っています Excelファイルオープン時に、「マクロを有効にする」をクリックすると その後は、自動的にマクロが実行され、Excelは自動的に閉じますが その単純作業の為に、席を離れられません。 (マクロの種類は100種類くらいあり、処理を統一化出来ないのでExcelファイルを開いては、「マクロを有効にする」 を繰り返えざる得ません) 以下の様な、処理を行って、自動化したいと思ってます(VBAで)が、 良い案が探せません (1)フォルダ内のExcelファイル名を全て配列変数へ格納する (2)ファイルの数だけLOOP処理を行う(以下を(3)~(5)まで繰り返す) (3)VBAでDOSコマンドを実行→Excelファイルを開く (4)API関数を用いて、「マクロを有効にする」をクリック  (GetMessageを利用すれば、良いかと考えてます) (5)次のファイルをDOSコマンドを実行→Excelファイルを開く (6)処理終了 ここで、(4)を行う為に、(2)の処理で起動されたExcelのPopUp画面のhWndを正しく取得する方法の見当がつきません・・・・。 どうかご教授の程、宜しくお願い致します m(__)m

  • DOSコマンド(COPYコマンド)について

    DOS上でのCOPYコマンドについて確認します。 EXCELのファイルで、毎回ファイル名が変わるため、COPYコマンドで固定のファイル名にしようと思い、バッチ起動で、COPY \AAA\*.XLS \AAA\BBB.XLSで実行すると、コピー元と違うファイルサイズのBBB.XLSが作成されます。 中身を参照すると、文字化けしたものが 1レコードだけ作成されています。どうしてなのでしょうか? ※コピー元の*.XLSは、毎回 1ファイルのみです。

  • DOSにコマンドを送って実行

    DOSモードでしか実行できないソフトがあるんですが、 VBからそのソフトをDOSで実行し、コマンドを送って、結果を得られるようにしたいのですが。 それと、DOSで実行している過程は表示されないようにしたいです。 そのソフトの使用方法は起動してコマンドを入力するだけで結果が出てきます。 どなたかご存知の方がいらっしゃいましたら宜しくお願い致します。

  • エクセルのVBAからDOSコマンドのDIRを実行したい

    DOSコマンドのDIRコマンドを、エクセルのVBAから実行したいのですがうまくいきません。助けてください。 DOSプロンプト上で、たとえば「DIR c:\*.mdb /s/b > c:\aaa.txt」を実行すると、Cドライブ上の拡張子(MDB)のファイルの一覧を、aaa.txt上に出力できるのですが、それをエクセルのVBAから実行したいのです。 Shell関数で、COMMAND.COMを実行することはできるのですが、それ以降の指定がわかりません。COMMAND.COMを実行した後、DOSプロンプトをアクティブにし、「DIR c:\*.mdb /s/b > c:\aaa.txt」をsendkeyで送れば・・・とアドバイスをうけたりもしたのですが、sendkeyでなくてもできた記憶があります。 よい方法があれば教えてください。 よろしくお願いします。

  • windows2000のDOSコマンドでテキストファイル形式のファイル

    windows2000のDOSコマンドでテキストファイル形式のファイルの記載内容を変更したいです。 Windows2000のDOSコマンドの問合せです。 日付がパラメータとしてセットされているテキストファイル(datepra.txt)があります。 このテキストファイルのパラメータとしてセットされている日付は、データベースの抽出条件としてfrom、toの2つの日付を指定おり、30行目と31行目に記載されてます。 この日付は今まで手動で毎月更新してたんですが、毎日更新したいと思います。 パラメータのfromは今日(毎日更新)、toは今日から1週間後の日付をバッチファイル(.bat)を作成し、日付を取得して、パラメータとしてセットされている30行目と31行目の日付を更新する方法をご教授いただきたく思います。 datepra.txt 中略 # 30行目 db_fromDate=2010/03/19 db_toDate=2010/03/16 中略 # 30行目までは、いろんなパラメータがセットされております。

  • DOSプロンプトのログを保存する方法

    PCのデスクトップに他のPCと通信をするためのプログラムが実行されるDOSのショートカットがあり、それをWクリックするとDOS画面上にコマンドやコマンド結果などが表示されていきます。 このときのやり取りをテキストファイルとして残さなくてはいけないのですが、方法がわかりません。 最初直接必要な部分をマウスで選択後、テキストファイルに貼り付けようとしましたが貼り付け不可能な部分があり、困っています。 出来れば、ショートカットを起動すると同時にログの保存が始まって、DOS窓を閉じるとログの保存が終了してテキストファイルが作成されるような動きが実現できる方法を教えてください。

  • DOSのコマンドで、隠しファイルをcopyまたはrenameする方法

    OSは、Windows98SEです。 隠しファイルの属性のついたファイルをいじる前に、それをバックアップしたいとします。 しかし、隠しファイルをDOSプロンプトでcopyをしようとしても、 「ファイルが見つかりません」と文句を言ってきます。 (renameの場合も同様に文句を言ってきます。) dir /A:H で表示はできるし、エクスプローラでは見えるので、無いわけはないのです。 エクスプローラでコピーしたり元に戻したりできれば全くかまわないのですが、 もしそういうファイルを下手にいじってしまって起動できなくなってしまって 起動フロッピーで起動するときには、 DOSのコマンドでバックアップから元に戻したりすることになると思います。 DOSのコマンドで、隠しファイルをcopyしたりrenameするにはどうすればよいのでしょうか。 それとも、そういう場合は、あらかじめ、隠しファイル属性をはずしておくべきなのでしょうか。 私は DOSのコマンドは、cd, dir, copy, rename くらいしか知りません。(それらも、自信なし。) よろしくお願いいたします。 (この質問は、約1週間のあいだ 回答がないと、締め切ります。)

  • DOSコマンドの削除で・・・

    DOSコマンドを使って、指定ファイルの削除バッチを作成し、タスク管理で自動実行しようと試みたのですが、DOS窓でy/nの返答を返さないと先に進まず自動的に実行が出来ません。 いい方法があれば教えてください。