ツヨブログ

パティシエからエンジニアになったレアな人材スウィーツや料理、VBAやPHPやJAVA、ずっとやってるFXや株など、自身の知識や経験をアウトプットしていくブログ

プログラミング

IEの新しいタブでサイトやリンクを開くVBA

更新日:

社内LANの環境で、excelや会社専用のソフトを使用している場合で、Chromeで使えない仕様になっていることがあったので、あえてInternet Explorerでの新しいタブの開き方です

Internet explorerの新しいタブを開くVBA

出社して、十数個のリンクを毎日開くので自動化したく、excelのVBAを作成しました

VBAを使うためのVBEの開き方はalt + F11です

Sub IE_newtab()

  '&H800という16進数でいう2048 を定数として宣言
    Const hexadecimal As Integer = &H800
  'IEが開いているかどうかの判定を行う変数の宣言
    Dim bFlg  As Boolean
  '初期状態では、開いていない状態と設定しておく
    bFlg = False

  
    Set objShell = CreateObject("Shell.Application")
    
  '開いているアプリケーションをひとつずつ見ていく
    For Each ObjWindow In objShell.Windows
      'IEがあれば
        If TypeName(ObjWindow.Document) = "HTMLDocument" Then
            Set objIE = ObjWindow
            'IEを開いていると判定させる
                bFlg = True
          IEが見つかったら、もう開いているアプリケーションは見ない
            Exit For
        
        End If
    Next
  
  'IEが開いていると判定されたら
    If bFlg = True Then
        
    'ソムリエの記事を開いていく
        objIE.Navigate2 "https://howtsuyoshi.work/sommelier-content", hexadecimal
        objIE.Navigate2 "https://howtsuyoshi.work/north-italy", hexadecimal
        objIE.Navigate2 "https://howtsuyoshi.work/", hexadecimal

  ’IEが開いていないと判定されたら            
    Else
    
    '一旦IEを開く
        Set objIE = CreateObject("InternetExplorer.Application")
        objIE.Visible = True
        
     '全画面じゃないように
        objIE.FullScreen = False
     '画面の上端からどこに開くか
        objIE.Top = 100
     '画面の左端からどこに開くか
        objIE.Left = 100
     '横幅の指定
        objIE.Width = 800
     '縦幅の指定
        objIE.Height = 600
        
     'ツールバーは出しておく
        objIE.Toolbar = True
     'メニューバーは出さない
        objIE.MenuBar = False
     'アドレスバーは出しておく
        objIE.AddressBar = True
     'ステータスバーは出しておく
        objIE.StatusBar = True
        
    'ガジェットの記事を開く
        objIE.Navigate2 "https://howtsuyoshi.work/iphone-android-change"
        objIE.Navigate2 "https://howtsuyoshi.work/no-datatabele-database-sort", hexadecimal
        objIE.Navigate2 "https://howtsuyoshi.work/", hexadecimal
    
    End If
        
End Sub

IEの起動がスタートメニューにある場合

もう既にIEを開いている場合と、そうでない場合があるので、という状況です。

IEを開いている場合は、ソムリエの記事が開きます

IEを開いていない場合は、ガジェットの記事が開きます

IF文の条件分岐を試してみるのもいいかもです。

あえて、既に開いている状態とまだ開いていない状態を作ったのは、URLの後にあるソース", hexadecimal"の為ですね。

IEを開いた状態とそうでない時に、エラーになるのを防ぐ目的で条件分岐をつけました。

僕はこれで毎朝リンクを探して、数十回クリックする作業から開放されます

httpsから始まるリンクを好きなものと入れ替えれば、ご自身の好きなサイトが開きますので是非ご使用ください。

ソースコードの説明

.Navigate2メソッド

隣のタブで指定したURLを開くときに使用します。

.Navigateメソッドもあるけど、新しいタブで開くときにエラーになるケースがあるので、使用しませんでした

&H800

第二引数に16進数を使用です。

「2048」としても動きます

「4096」:「&H1000」とすると新しいタブで開いたものを非アクティブな状態になります

-プログラミング
-, ,

Copyright© ツヨブログ , 2021 All Rights Reserved Powered by STINGER.