[PowerShell] | |||||||||
PowerShellでVisual Basicの組み込み関数を利用する
|
|||||||||
|
解説 |
Visual Basicが初学者にも親しみやすい理由の1つとして、直感的にも分かりやすいさまざまな関数群が豊富に取りそろえられているという点が挙げられる。もちろん、PowerShellや(PowerShellから利用できる).NET Frameworkの基本クラス・ライブラリにも同様、または類似した機能は用意されているが、使い慣れたVisual Basic(あるいはそのサブセットであるVBScript)の関数を引き続き利用したいという方も少なくないはずだ。
そこで本稿では、PowerShellスクリプトからVisual Basic組み込みの関数を利用する方法について紹介する。.NET Frameworkにおいて、Visual Basicの関数はMicrosoft.VisualBasic名前空間で実装されたクラス・ライブラリの一部として提供されている。つまり、Microsoft.Visual Basic名前空間さえ有効にしてしまえば、実はPowerShellスクリプトをはじめ、.NET Frameworkに対応したほかの言語からも自由に利用できてしまうのである。
以下のサンプルでは、Visual Basicの組み込み関数を利用する一例として、入力ボックスを表示するInputBox関数を実行してみよう。
操作方法 |
注意 |
PowerShellを利用するには、あらかじめシステムにユーザー自身がインストールしておく必要があります。具体的なインストール方法については別稿の「PowerShellをインストールする」を参照してください。 |
手順1――テキスト・エディタでPowerShellのコードを入力する
まずはテキスト・エディタ(メモ帳でも何でもよい)を開き、以下のコードを入力してほしい。なお「#〜」で始まる行は、コードの意味を解説するためのコメント部分なので、省略してもよい。コメントには、スクリプトの簡単な説明を入れておいた。
|
|
※サンプル・ファイルVb.ps1をダウンロードするには、ここをクリックしてください。 |
PowerShellスクリプトの実行ファイルは拡張子を「.ps1」とする必要がある。ファイル名はなんでも構わないが、ここでは「Vb.ps1」という名前で保存しておこう。
コード全体の流れについてはリスト内のコメントをご覧いただくとして、ここではVisual Basicの組み込み関数を有効にしている部分(リスト内の太字)に注目してみよう。
解説でも述べたように、Visual Basicの組み込み関数はMicrosoft.VisualBasic名前空間で静的なメソッドとして定義されている。ただし、Microsoft.VisualBasic名前空間を含むMicrosoft.VisualBasicアセンブリを、PowerShellはデフォルトでは有効化しない。そこで、最初にMicrosoft.VisualBasicアセンブリを有効化するという手続きが必要になるわけだ。
アセンブリを有効にするのは、Assemblyクラス(System.Reflection名前空間)に属する静的メソッドLoadの役割だ。Loadメソッドの引数には、アセンブリの完全修飾名を指定する必要がある。完全修飾名の形式は、以下のとおりである。
アセンブリ名, Version=バージョン, Culture=カルチャ, PublicKeyToken=公開キー・トークン |
アセンブリのバージョンやカルチャ、公開キー・トークンについては、エクスプローラから「<Windowsフォルダ>\assembly」フォルダを開いて、該当アセンブリのプロパティ・シートを参照すると確認できる。ほかのアセンブリを有効にしたい場合にも、適宜、必要なアセンブリのプロパティ・シートを確認いただきたい。
アセンブリ・ファイルのプロパティ・シート |
Microsoft.VisualBasicアセンブリ・ファイルのプロパティ・シートの例 |
Loadメソッドは通常、Assemblyオブジェクトを戻り値として返すが、これをそのままにしておくと、デフォルトで以下のように戻り値(Assemblyオブジェクトの内容)をシェル上に表示してしまう。
Loadメソッドの戻り値をそのまま表示した場合 |
そこでここでは、キャスト構文「[void]」で、強制的に戻り値を打ち消しているわけだ。メソッドの実行だけを行い、戻り値を必要としない場合には、よく利用する構文なので、ぜひとも覚えておきたいところだ。
Microsoft.VisualBasicアセンブリを有効にしたら、あとは実際にVisual Basicの組み込み関数を呼び出してみよう。例えば、入力ボックスを呼び出すInputBox関数は、Interactionクラス(Microsoft.VisualBasic名前空間)の静的メソッドとして呼び出すことができる。そのほか、Microsoft.VisualBasic名前空間に含まれる組み込み関数と名前空間の対応については、以下のページを参照してほしい。
手順2――PowerShellのスクリプト・コードを実行する
Vb.ps1を実行するには、PowerShellのプロンプトを開き、次のようにコマンドを実行すればよい(カレント・フォルダにスクリプトが保存されているものとする*)。
|
|
|
* PowerShellでスクリプト・ファイルを実行する場合には、あらかじめいくつかの設定を行っておく必要がある。詳細については、別稿「Windows PowerShellコマンド&スクリプティング入門(後編)」を参照いただきたい。 |
スクリプトを実行すると、入力ボックスが表示されることを、また、入力ボックスから適当な文字列を入力し、[OK]ボタンをクリックすることで、その内容がシェル上に反映されることを確認してほしい。上のような結果が得られればスクリプトは正しく動作している。
この記事と関連性の高い別の記事
- PowerShellでフォルダ/ファイル選択ボックスを利用する(TIPS)
- Excelでユーザー定義のワークシート関数を追加する(TIPS)
- PowerShellからVBScript/JScriptのコードを利用する(TIPS)
- Excelのユーザー定義関数で既存のワークシート関数を利用する(TIPS)
- ユーザー定義関数で任意のセル範囲の値を取得する(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|