.NETエンジニア・プログラマ向けの技術情報・業界ニュースをお届けします。

  1. FEnet.NETナビ
  2. .NETコラム
  3. プログラミング言語
  4. VBAとは?JavaScriptとは?共通項を徹底解説!

VBAとは?JavaScriptとは?共通項を徹底解説!

  • プログラミング言語
公開日時:   更新日時:
VBAとは?JavaScriptとは?共通項を徹底解説!
この記事でわかること
    基本情報技術者試験の試験対策はこちら>>

    システム
    エンジニア
    VBAでできること、JavaScriptでできることの共通項はあるのでしょうか?

    プロジェクト
    マネージャー
    仕事でも幅広く利用できるので、習得することで市場価値の高い人材を目指せます。

    VBAとは?


    VBAとは、Visual Basic for Applicationの略で、Excel、Wordなどに付属している、ドキュメントを自動操作するためのスクリプトのことです。マクロとも呼びます。

    Excel VBAを扱うことの方が非常に多く、一般にVBAというとExcel VBAのことを指します。
    この記事でも、Excel VBAを扱っていきます。

    JavaScriptとは?

    JavaScriptとは、Webブラウザで動作するWebの表示を変えるためのスクリプトのことです。
    名前が似ていますが、JavaとJavaScriptとは何の関係もありません。

    今のブラウザ(Bing、Internet Explorer、Chrome、Firefox、Safariなど)ではデフォルトでJavaScriptが有効になっています。また、今どきのホームページで、JavaScriptを使っていないホームページはありません。

    Webの開発者になりたいなら、JavaScriptは必須の知識と言えるでしょう。

    VBAとJavaScriptの共通項

    VBAはExcelの中で動くスクリプトでJavaScriptはブラウザの中で動くスクリプトです。即ち、動く用途があらかじめ決まっています。それ以外のことには使えません。

    しかしExcelは様々な用途に使われますし、Webも様々な用途のものがあります。

    言語としての用途が決まっていても、VBAもJavaScriptも、単体で「プロ」になって稼げるくらい仕事の幅は広いのです。

    これがVBAとJavaScriptの共通項です。

    VBAでスクレイピング

    では、VBAとJavaScriptの共通項がよく分かるものとして、VBAでのスクレイピングの例を見ていきましょう。

    スクレイピングでは、ホームページの内容を読み込み、ホームページをDOM=Document Object Modelというものに分解して解析します。DOMの操作はJavaScriptが最も活用される場面です(ホームページの表示の操作がJavaScriptの目的でした)。VBAでもDOMを操作できるのです。

    VBAとJavaScriptの技術の一端を紹介します。

    スクレイピングの方法

    VBAでスクレイピングするには、Internet Explorerを使います。

    VBAからInternet Explorerを起動し、そこにホームページを読み込ませて、その読み込んだホームページを解析するのです。

    Internet Explorerの準備は

    Dim ie As New InternetExplorer
    ie.Visible = True

    です。
    VisibleをFalseにするとInternet Explorerは表示されませんが、裏側で何をしているか分からなくなるため、可能な限り表示させておくことをおすすめします。

    実際にホームページを読み込むのには、次のようなコードを書きます。

    Private Declare Sub Sleep _
    Lib “kernel32” (ByVal dwMilliseconds As Long)

    Private Function readHTML(ByRef ie As InternetExplorer, ByVal url As String) As HTMLDocument
    Err.Clear
    On Error Resume Next
    ie.navigate url
    If Err.number <> 0 Then
    Set readHTML = Nothing
    ThisWorkbook.Worksheets(1).Cells(errRow, 1).Value = Str(Now) + url + “の読み込み時にエラーが発生しました”
    errRow = errRow + 1
    Else
    Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop Set readHTML = ie.document End If '// 1秒スリープ Call Sleep(1000) End Function ie.navigate url でurlのページをIEに読み込ませます。 その後、読み込みが終わるまで Do While ie.Busy Or ie.readyState < READYSTATE_COMPLETE DoEvents Loop で待ちます。 Set readHTML = ie.document で関数の戻り値としてホームページの内容を返しています。documentオブジェクトがDOMモデルになっています。JavaScriptのdocumentオブジェクトと同じです。 最後に、続けて読み込むとサーバーに負荷をかけるため(サーバーに過大な負荷をかけるのは犯罪に問われかねません)Sleepしています。これはWindowsのシステムコールを読んでいます。上の方にある宣言 Private Declare Sub Sleep _ Lib "kernel32" (ByVal dwMilliseconds As Long) はシステムコールを呼ぶための宣言です。

    DOM要素の分析の仕方

    docにホームページのDOMオブジェクトが代入されているとして、それを分析する方法を解説します。

    コードを一部抜粋します。

    Dim li, l As Object
    …(略)…
    Set li = doc.getElementsByClassName(“product_grid”)(0).getElementsByClassName(“product_grid_item”)

    For Each l In li

    image = l.getElementsByClassName(“product_grid_image”)(1).getAttribute(“src”)
    …(略)…

    getElementsByClassName
    はJavaScriptの
    getElementsByClassName
    と同じです。クラス名に一致する要素の配列を取り出す関数です。
    このとき、VBAでは通常は添え字1から始まる配列が0から始まりますので、混乱しないようにしてください。

    getAttribute
    はJavaScriptの
    getAttribute
    と同じです。その要素の属性を取得する関数です。

    このようにしてスクレイピングしていきます。だいたいDOM操作の仕方はJavaScriptと似ています。

    システム
    エンジニア
    VBAとJavaScriptの技術は多くの仕事で必要とされているのですね。

    プロジェクト
    マネージャー
    そうですね。VBAとJavaScriptを覚えて、幅広い活躍を目指しましょう!

    仕事の幅を広げよう

    VBAとJavaScriptの技術の一端として、共通する技術であるスクレイピングの紹介をしました。

    VBAで技術を深めると、Accessとの連携、複雑な会計システム設計などを手掛けることになり、それなりに開発規模も大きくなります。例えば官公庁でも、VBAで基幹システムを作っているところは存在します。業務システムの根本を手掛ける重要なエンジニアともいえるでしょう。

    またJavaScriptは、CSSと連携した表示効果の演出の他にも、動的な(HTML自体をJavaScriptで生成する)Webページ生成を可能にするVue.jsやReact.jsでの開発などがあり、大変応用範囲が広く、JavaScriptは大変奥が深い技術です。

    JavaScriptでは、サーバーサイドをJavaScriptで構築するNode.jsという技術もあります。フロントエンドだけではなく、バックエンドもこなしてしまうということです。JavaScriptを扱うことによって、仕事の幅を広げることが可能です。

    VBAとJavaScriptを覚えて、仕事の幅を広げましょう。

    FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
    株式会社オープンアップシステムロゴ

    株式会社オープンアップシステムはこんな会社です

    秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
    数多くのエンジニアが集まります。

    秋葉原オフィスイメージ
    • スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで

      スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。

    • 充実した研修制度

      充実した研修制度

      毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。

    • 資格取得を応援

      資格取得を応援

      スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。

    • 東証プライム上場企業グループ

      東証プライム上場企業グループ

      オープンアップシステムは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。

      安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。

    株式会社オープンアップシステムに興味を持った方へ

    株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。

    年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
    まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。

    株式会社オープンアップシステムへのご応募はこちら↓
    株式会社オープンアップシステムへのご応募はこちら↓

    JavaScript新着案件New Job