非表示にできる< 目次 >
はじめに
EXCEL VBAでIE(InternetExploer)を制御する方法について触れようと思います。
本ブログ記事は、Crowd Works で納品まで行い、実際にお金になったコードを元に紹介します。
本記事でできること
EXCEL-VBAにおけるDOM(Document Object Model)でのブラウザ制御で、
Webブラウザを全選択コピーしEXCELに貼付することができます。
ちょっとだけ宣伝
プログラミング学習(全般)における間違えない学習方法を理由を含めて説明した記事がございます。
当然 無料ですので、学習方法において不安に感じている方がいらっしゃれば 是非ご覧くださいませ。
コード(解説はコード内のコメント)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
'★準備1:変数セット Dim ShellObj As Object Dim SWindows As Object Dim SWindow As Object Dim IEAP As Object Dim hWnd As Long Dim IEnames As String Dim STime As Date Dim FSWFlag As Boolean '★準備2:初めに任意のWebサイトを変数に格納しておく。 '変数 IEnames にIEブラウザの名称を入れる IEnames = "Yahoo" '今回は分かりやすくYahooにしておきます。 Set ShellObj = CreateObject("Shell.Application") Set SWindows = ShellObj.Windows() FSWFlag = False For Each IEAP In SWindows If InStr(IEAP, "Internet Explorer") <> 0 And Left(IEAP.LocationName, Len(IEnames)) = IEnames Then hWnd = IEAP.hWnd SetForegroundWindow IEAP.hWnd 'SetForegroundWindow でYahooのIEブラウザを前面にもってきます。 FSWFlag = True 'FSWFlag がTrueになれば、正しくIEブラウザを捕まえたフラグ Exit For End If Next '★Webサイト(IEAP)側制御 'OLECMDID_SELECTALL = 17 "全てを選択" IEAP.ExecWB 17, 0 'OLECMDID_COPY = 12 "コピー" IEAP.ExecWB 12, 0 '★EXCEL側制御 'EXCELシートの最後尾に新規シートを追加 Sheets.Add After:=Worksheets(Worksheets.Count) '新規で追加したシートの名称を 任意のシート名に変更する ActiveSheet.Name = "任意のシート名" '新規で追加したシートのA1セルを選択 Range("A1").Select '形式を選択。 'これは[セルの書式設定]ダイアログボックスの[表示形式]タブで、ユーザー定義の表示形式を設定するときに使用する文字列 '「090」「03」のような数値(データ)を文字列として入力したい場合は 先に表示形式を設定する必要がある。 '@は 文字列だったかな。なので、@を入れる。 Selection.NumberFormatLocal = "@" '形式を選択して貼り付け ActiveSheet.PasteSpecial Format:="HTML", Link:=False, DisplayAsIcon:=False, NoHTMLFormatting:=True |
オススメ書籍(もっとIEブラウザ連携知りたい人向け)
EXCEL VBAにおける IEブラウザ連携でオススメする書籍をご紹介します。
この書籍はIEブラウザ連携の逆引きコードとして利用できる稀有な書籍ですので1冊持っておくだけで、
コーディングにおいて かなり効率が良くなります。
今回紹介したソースコードの直接的な説明はありませんが、
ヒントになる情報は十分に有り コードを完成するまでに至りました。
インターネットだけでは分かり得ない体系的な情報も合ったりなど、
ハッキリいってコスパが良いで代物だと思っています。
DOM(Document Object Model)の書籍は数が少ないというものありますが、
良書であることは間違いないため、
DOMで効率化を図りたい人ならば1冊は持っておいて損はしないと思います。
また、IEブラウザ連携は 専門用語が多くわかりにくい分野でもありますので、
もし コーディング効率をあげつつ、専門用語についても学びたいのであれば、
この1冊で一石二鳥ですのでオススメします。
終わりに
いかがでしたでしょうか。
今後もVBA↔IEブラウザ制御については需要があると思いますので投稿していこうと思います。
ゆくゆくは『 1から始めるVBA ↔IEブラウザ 連携 講座』もシリーズものとして投稿し少しでも読者の方の役に立てれば良いなと考えておりますの、今後とも どうぞよろしくお願いいたします。