ExcelのVBAからEdgeやChromeを操作する方法(その1:初期設定)

June 23,2023 11:55 PM
Category:[Edge]
Tag:[Edge]
Permalink

ExcelのVBAからEdgeやChromeを操作する方法を紹介します。

「その1」は、VBAの設定と、ブラウザ(Edge)が開くまでの手順を紹介します。

1.はじめに

以前、「iMacros」を使ってブラウザを操作する方法を紹介しましたが、VBAからGoogleChromeやEdgeを操作する方法をみつけたので何回かに分けて紹介したいと思います。

VBAを利用することで、ブラウザ上のフォームデータの入力やを送信もできるようです。

今回は下記の記事前半の手順を詳しく説明したものです。

Excel VBAでSeleniumBasicを使わずにスクレイピングする

2.Microsoft Edge WebDriverのダウンロード

Microsoft Edge WebDriverのサイトにアクセスして、少し下にある「最新バージョン」から、該当のEdgeバージョンのドライバをダウンロードします。

Edgeのバージョンの確認は、ブラウザ右側にある設定アイコンをクリックして、「ヘルプとフィードバック」→「Microsoft Edgeについて」をクリック。

(クリックで拡大、以下同様)
Microsoft Edgeについて

次の画面でバージョン「114.0.1823.58」が表示されました。

バージョン

さきほどアクセスしたサイトから、これと同じバージョンの該当OSのリンクをクリックしてダウンロード。私が使っているPCはWindowsの64bitなので、ここでは「x64」をクリックしています。

同じバージョンの該当OSのリンク

ダウンロードしたアーカイブを展開して、中にmsedgedriver.exeがあることを確認します(あとで利用します)。

Chromeで利用したい場合は、ChromeDriverのサイトからダウンロードしてください。

こちらもバージョンが一致している必要があります。

3.VBA-JSONのダウンロード

VBA-JSONのサイトにアクセスして、「Source code(zip)」または「Source code(tar.gz)」をクリックしてダウンロードします。

VBA-JSON

ダウンロードしたアーカイブを展開して、中にJsonConverter.basがあることを確認します(あとで利用します)。

4.VBAの設定

メニューにマクロが表示されていない場合は、まずメニューの表示設定をします。

・「ファイル」→「オプション」をクリックして開いた画面の「クイックアクセスツールバー」をクリック。
・左側のリストから「マクロ[マクロの表示]」をクリックして「追加」をクリックし、「OK」をクリック。
→バーにマクロのアイコンが表示される

メニューの表示設定

ここからが本題です。

「表示」タブの「マクロ」→「マクロの表示」をクリック。

マクロの表示

画面が開くので、マクロの名前に任意の名称(ここでは「test」)を入力して「作成」をクリック。

マクロの作成

「Visual Basic Editor」が開きます。

Visual Basic Editor

プロジェクト・エクスプローラ上のツリーから[VBAProject(ファイル名)]を右クリックして、表示されたコンテキスト・メニューから[ファイルのインポート]を選択

ファイルのインポート

[ファイルのインポート]ダイアログが開くので、「JsonConverter.bas」を選択し[開く]ボタンをクリック。

「JsonConverter.bas」を選択

これで、プロジェクト・エクスプローラのツリーにもインポートしたモジュールが追加されます。

モジュールが追加

続いて、連想配列を扱うDictionary型を利用するための設定を行います。

VBEのメニューバーの「ツール」→「参照設定」をクリック。

参照設定

「Microsoft Scripting Runtime」にチェックを入れて「OK」をクリック。

Microsoft Scripting Runtime

5.VBAにコード設定

関数「test」の中に、下記のコードを設定します。赤字の「C:\tmp\edgedriver_win64\msedgedriver.exe」には、2項でダウンロードしたmsedgedriver.exeをフルパスで指定してください。

Chromeの場合は「chromedriver.exe」を設定します。

Sub test()
 
    ' WebDriverの起動。デフォルトで9515番ポートを監視
    Shell "C:\tmp\edgedriver_win64\msedgedriver.exe", vbMinimizedNoFocus
 
    ' ブラウザ起動パラメータの作成
    Dim params As New Dictionary
    params.Add "capabilities", New Dictionary
    params.Add "desiredCapabilities", Nothing
 
    ' HTTPクライアントの起動
    Dim client As Object
    Set client = CreateObject("MSXML2.ServerXMLHTTP")
 
    ' 指示の送信
    client.Open "POST", "http://localhost:9515/session"
    client.setRequestHeader "Content-Type", "application/json"
    client.send JsonConverter.ConvertToJson(params)
 
    ' 送信完了待ち
    Do While client.readyState < 4
        DoEvents
    Loop
End Sub

実際の画面での追加は下記のようになります。

VBAにコード設定

6.実行

「実行」→「Sub/ユーザーフォームの実行」をクリック。

実行

EdgeまたはChromeが起動して、真っ白なページが表示されれば設定完了です。

Edge起動

Comments [0] | Trackbacks [0]

sshログインに時間がかかる場合の対処

June 16,2023 11:55 PM
Category:[Linux]
Tag:[]
Permalink

sshログインに時間がかかる場合の対処方法について紹介します。

1.問題

あるサーバから別のサーバにログインする際、ログインするまでに数十秒かかりました。

時間がかかる原因がわかりません。

ということで、sshログインに時間がかかる場合の対処方法について紹介します。

2.原因

今回は、sshの最初にDNSサーバにアクセスしているのが原因でした。

ホストのネームサーバを設定しているファイル

/etc/resolv.conf

の設定をみると、下記のようになっていました。

# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.1
nameserver 192.168.0.10

これらのアドレスにping6を送信しても応答がなく、ここ部分で遅延しているようです。

3.対処

ホストの

/etc/ssh/sshd_config

に、"UseDNS"の項目を無効にする設定を追加します。

変更前(コメントアウト)

#UseDNS yes

変更後

UseDNS no

上記設定後、sshd再起動します。

# systemctl restart sshd

これで解消すれば、sshログイン時にDNSサーバへのアクセスが問題であったことになります。

Comments [0] | Trackbacks [0]

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了

June 6,2023 11:55 PM
Category:[Movable Type]
Tag:[MovableType]
Permalink

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了するようです。

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了

この記事で誤解を招かないよう、先にお伝えしておきたいことがあります。

コミュニティサイトは終了しますが、Movable Typeの現状とは何の関係もありません。

当サイトでのMovable Typeプラグインのライセンス購入や、私への開発依頼は、以前と特に変わらず推移しています。

Movable Type自体も、Movable Type 8が2023年秋にリリース予定です。

話を戻して、サイトのメニュー下にサービス終了の案内が表示されています。

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了

過去のログを確認した限りですが、MTQは2011年に運用が開始されているようで、2023年6月6日現在までのトピックとコメントは次の通りです。

  • トピック:2375
  • コメント:6752

内訳は下の画像のとおりですが、テンプレートやタグについての質問が特に多かったようです。

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了

このコミュニティサイトが立ち上がったときにすぐに登録し、活発にコメントさせて頂いたのはいい思い出です。

Movable Typeのコミュニティサイト「MTQ」が2023年7月31日に終了

またこのサイトで、MTについて勉強させて頂いたことも多々ありました。

最近は新たなトピックも減り、トピックに対するコメントに対する反応も減ってきて、閑散とした状況が続いてました。

減少してきた要因として、推測ですが、個人利用のMTユーザーが減少してきた(=個人ユーザーが躓いたときの質問が減った)のではないかと思っています。

それにしたがい、(私含めて)パワーユーザーからのアクションも減少したように思われます。

それでも他の方が迅速に対応されているのに安心し、油断してしばらくMTQにアクセスしていない時期がありました。

久しぶりに訪れたところ、回答がないトピックが複数残っているのに気がつき、それ以降は定期的にMTQにアクセスして、しばらく一人でコメント対応する時期が続いたこともありました。

が、コミュニティサイトとしての役目を終える時期が訪れたようです。

非常に残念ですが、これも時代の流れでしょう。

最後に、MTQには大変お世話になり、本当にありがとうございました。

個人的な要望として、できればサイトは参照用として残して頂けるありがたいのですが、静かに見守りたいと思います。

Comments [0] | Trackbacks [0]
 1  |  2  |  3  |  4  |  5  | All pages