1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[VBScript]同じWebのリンクを違うブラウザので開く方法+違うプロファイルで開けるかもしれない

Last updated at Posted at 2023-09-23

今回の基本

ショートカットを使う

特定のURLショートカットをブラウザ指定で作成する方法【Chrome/Firefox/Edge】
これからいう方法は安定はしないので、時間がない人はこちらの方法を使うほうがおすすめ。

VBScriptを使う

PowerShell でショートカットを作る
PowershellでもWindows Scripting Hostを呼び出すので、ほぼ変わらない。

拡張子はURLではない

VBScript Tips (Tips0121)
Webだからといって拡張子はURLではなく.lnkになる。

アイコンも変えられる

バッチファイルとVBScriptを併用してショートカットアイコンを作成する
今回はそこまではやらない。

頭から64bitは64bitと決めつけず、exeの場所を直接、またはショートカットのプロパティで確認する。

当方はEdgeは32bitでした。

環境変数が使える

Windows10の環境変数の一覧と調べ方。便利な使い方も解説 | 己で解決!泣かぬなら己で鳴こうホトトギス
Windows で 32bit/64bit を確実に判断する|PROCESSOR_ARCHITECTUREとPROCESSOR_ARCHITEW6432 | ハングスタック
今回、Chromeは64bitだった。

コードのポイント

TargePathは実行ファイルのみ

TargetPathにURLをぶち込んでもほぼ失敗する。
かといって、一度書いて、書き換えるわけでもない。
【VBScript】ショートカットファイルのリンク先を一括変更するサンプルコード - ITエンジニアの備忘録的技術ブログ【仮】

正解はここに

公式は複数個所に記述がありややこしい。
Lern > Windows Server
wscript | Microsoft Learn

正解は、
Learn トラブルシューティング Windows Windows クライアント
Windows スクリプト ホストを使用してデスクトップ ショートカットを作成する - Windows Client | Microsoft Learn

この記事では、Visual FoxPro 内から Microsoft Windows スクリプト ホスト (WSH) を使用してデスクトップ ショートカットを作成する方法について説明します。

と一見全く関係のない記述から始まるこの記事にあった。

Argument 引数

正解はargementを使う。なお、+ でつながなくても成功した。

URLはプロファイルのあと

Chromeはそうだった。

コード

前提条件

目的

www.yahoo.co.jpを開く
ブラウザは64bitのChromeと32bitのEdge
Chromeのプロファイルはデフォルト
ChromeはOSのBit数に従ってフォルダが決まる
作業フォルダは、各ブラウザのショートカットアイコンにあるものを使用

注意 同名のショートカットの削除

同名のショートカットは削除されるので注意

注意 デスクトップの取得

仮想端末だけではなく、OneDriveを使う場合でもDeskTopがOneDriveのデスクトップになる場合がある。
この挙動があまりよくわかっていない。
OneDriveのアカウントとWIndowsのアカウントが同じな場合は問題がないようだが。

Option Explicit
Dim objWshShell     ' WshShell オブジェクト
Dim strDesktopPath  ' デスクトップのフォルダ名 ただし、仮想端末の場合はこれで拾えるかはわからない。
Dim objShortcut     ' ショートカットファイル
Dim strPath ' プログラム(アプリ)のフォルダ
Dim strTarget
Dim strEx
strEx = "lnk"
Set objWshShell = WScript.CreateObject("WScript.Shell")

On Error Resume Next
    strDesktopPath = objWshShell.SpecialFolders("Desktop") ' 仮想の場合はこれではなく、実際のフォルダ名 \\Server\name\...\Desktopの可能性がある。
' エラーがなければ処理を進める
If Err.Number <> 0 Then WScript.Quit
    strPath = objWshShell.ExpandEnvironmentstrings("%ProgramW6432%")
    WScript.Echo strPath
    With CreateObject("Scripting.Filesystemobject")
    if .fileexists(strDesktopPath & "\yahoo1." & strEx) then .DeleteFile strDesktopPath & "\yahoo1." & strEx
    End with
    strTarget = strPath & "\Google\Chrome\Application\chrome.exe"
    Set objShortcut = objWshShell.CreateShortcut(strDesktopPath & "\yahoo1." & strEx) ' 拡張子Urlでインターネット用になる
    Wscript.Sleep 500
    With objShortcut
     .TargetPath = strTarget
     ' この書き方の場合ダブルクォーテーションの数(エスケープ)に注意
     .Arguments =   " --profile-directory=""Default""" & " https://www.yahoo.co.jp"
     .WorkingDirectory = strPath & "\Google\Chrome\Application\"
     .Save
    End With
    With CreateObject("Scripting.Filesystemobject")
      if .fileexists(strDesktopPath & "\yahoo1." & strEx) then .DeleteFile strDesktopPath & "\Edge-yahoo1." & strEx
    End with
    Set objShortcut = objWshShell.CreateShortcut(strDesktopPath & "\Edge-yahoo1." & strEx) ' 拡張子Urlでインターネット用になる
        Wscript.Sleep 500
    With objShortcut
     .TargetPath = "%programfiles(x86)%" & "\Microsoft\Edge\Application\msedge.exe"
     .Arguments =   " https://www.yahoo.co.jp"
     .WorkingDirectory =  "%programfiles(x86)%" &  "\Microsoft\Edge\Application\"
     .Save
    End With


Set objShortcut = Nothing
Set objWshShell = Nothing

Google Chrome以外も違うプロファイルはあるのか

Microsoft Edge でサインインして複数のプロファイルを作成する
Firefox で複数のプロファイルを使い分ける方法 – ラボラジアン

## 多分プロファイルでさらに使う分けられる
ショートカットまで作成できる以上、後ろにURLをつければ作成できる。
しかし、これには複数のプロファイルを作らないといけないので、今回はできなかった。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?