3.6 VBA マクロの記録、実行、編集

3.6.1 マクロを実行する

Reflection で作成した VBA マクロと、以前の Reflection および EXTRA! 製品で作成したほとんどのマクロを実行できます。また、Micro Focus Rumba、IBM Personal Communications、OpenText HostExplorer、および Brandon Systems\Jolly Giant QWS3270 製品で作成したマクロもほとんどを実行できます。ただし、マクロは信頼された場所でのみ実行できます。

マクロ関連の操作 (Reflection ワークスペースマクロの実行など) には、[操作の選択] ダイアログボックスから実行できるものがあります。

また、操作をコントロールにマッピングしてマクロを実行することもできます。詳細については、マクロを実行するためのボタンの追加 を参照してください。

マクロを実行するには

  1. [マクロの実行] ダイアログボックスから、実行するマクロを選択します。

    メモ:以前のマクロオプションは、互換性機能がインストールされている場合にのみ使用できます。また、外部ファイルから以前の Reflection および EXTRA! マクロを実行するには、[API とマクロのセキュリティの設定] ダイアログボックスから、実行する以前のマクロの種類を指定する必要があります。

    [Reflection ワークスペースマクロ]

    アクティブなセッションドキュメントでマクロを表示します。Reflection または 2007 (SP1) のドキュメントで作成したマクロの実行を選択します。

    共通プロジェクトやその他のドキュメントでマクロを実行するには、[<標準すべて>][含まれるマクロ] メニューから選択します。

    [このファイルにある以前の Reflection マクロ]

    アクティブなドキュメントで以前のマクロの実行を選択します。これらのマクロには以前の設定ファイル (.rsf, .r2w, or .r4w) が含まれます。また <prod_emulate_short> には、以前に設定ファイルから変換されたセッションドキュメント (.rd3x, .rd5x, .rdox) が含まれます。

    [別のファイルにある以前の Reflection マクロ]

    SharedMacro ファイル (.rma) または設定ファイル (.rsf、.r2w、または .r4w) でマクロを指定して実行する場合に選択します。

    [以前の RB マクロ]

    Reflection Basic マクロ (.rbs) を指定して実行する場合に選択します。

    [以前の RCL スクリプト]

    以前の RCL スクリプトを指定して実行する場合に選択します。VT セッションドキュメントでのみ使用可能です。

    [以前の EXTRA! マクロ]

    EXTRA! マクロファイル (.ebm) を指定して実行する場合に選択します。

    [Rumba マクロ]

    Micro Focus Rumba マクロファイル (.rmc) を指定して実行する場合に選択します。

    [QWS マクロ]

    Brandon Systems/Jolly Giant QWS3270 マクロファイル (.jgs) を指定して実行する場合に選択します。

    [IBM Personal Communications マクロ]

    IBM Personal Communications マクロファイル (.mac) を指定して実行する場合に選択します。

  2. [ワークスペース] マクロが見つからない場合は、[設定] ウィンドウで [VBA参照の設定] を選択して [VBA参照の追加] マクロダイアログボックスを開き、欠落している参照 ( ボタンで示されている) を確認します。問題 (通常はファイルが見つからないか、ネットワークドライブが接続されていない) を修正したら、セッションを閉じてもう一度開きます。

3.6.2 Visual Basic エディタでのマクロの作成

可能な限り、マクロはモジュール内で作成します。それによって、プログラムの整合性および安定性が向上します。ただし、イベントプロシージャは例外で、Reflection オブジェクトに直接追加されます。

Visual Basic エディタでマクロを作成するには

  1. Reflection でセッションドキュメントを開きます。

  2. セッションドキュメントは、[プロジェクトエクスプローラ] 内でプロジェクト (例えば Project (My Session.rd3x)) として表示されます。

  3. [プロジェクトエクスプローラ] で、マクロの保存先プロジェクトを選択した後、[挿入] - [標準モジュール] コマンドを選択し、新しいモジュールを作成します。

  4. 作成したモジュールをダブルクリックします。

    [コード] ウィンドウが開きます。

  5. [挿入] - [プロシージャ] コマンドを選択した後、[名前] ボックスに名前を入力し、[OK] をクリックします。

    選択する名前は、Visual Basic のマクロの命名規則に従っていなければなりません。詳細については、マクロの命名 を参照してください。

  6. マクロのコードを、Sub (または Public Sub) ステートメントと End Sub ステートメントの間に入力します。

    Visual Basic のコマンドでは、文脈依存ヘルプを利用できます。コマンド内で挿入位置を指定し、[F1] キーを押します。

3.6.3 VBA マクロの収録

ホストアプリケーションとの以下のようなやり取りを自動化する VBA マクロを収録できます。

  • ホストアプリケーションへのデータの送信、ホストアプリケーションでのテキストの入力。

  • 1 つのホストアプリケーションから別のホストアプリケーションへのテキストまたはデータの切り取り、コピー、貼り付け。

  • 1 つのホストアプリケーションから別のホストアプリケーションに移動するタブの切り替え。

  • マウスでテキストを選択するか、マウスをクリックしてカーソルを移動する (マウスクリックはカーソル位置として記録されます。)

以下の操作は収録できません。

  • Reflection 設定および生産性機能 (スペルチェック、自動拡張、オートコンプリートなど) のやり取り。

  • ホストへの接続またはホストからの切断。

  • Web アプリケーションとのやり取り。

  • ホストから外部アプリケーション (例えばメモ帳) への切り取りまたは貼り付け。

マクロを収録するには

  1. 自動化するタスクを実行します。

  2. (オプション) 別のタスクを実行するために収録を中断する必要がある場合は、[収録の停止] をクリックします。収録を再開する用意ができたら、[収録の停止] を再度クリックします。

  3. マクロの収録を終了したら、[収録の終了] をクリックします。

    [収録の完了] ダイアログボックスが表示されます。

  4. マクロに名前を付けて、保存先を選択し [OK] をクリックします。

    メモ:Visual Basic エディタを使用して収録したマクロの微調整ができます。詳細については、「マクロの編集」を参照してください。

3.6.4 マクロの編集

Visual Basic エディタを使用して Reflection マクロを編集します。

マクロを編集するには

  1. [マクロ] ダイアログボックスが表示されます。

  2. [マクロ名] ボックスで、編集するマクロの名前を選択し [編集] をクリックします。

  3. Visual Basic エディタで、マクロコマンドを入力するか編集します。

  4. [ファイル] - [<ファイル名> の上書き保存] コマンドをクリックします。

3.6.5 起動マクロの実行

セッションが開き、ホストに接続した時ではなく、<prod_emulate_short> のワークスペースが開始した時に、Visual Basic for Applications (VBA) マクロが実行されるよう設定することができます。

そうすると、ユーザの接続方法に関する情報を収集し、その情報を用いてセッション設定を構成できるようになります。

例えば、次のようなタスクを実行する起動マクロを作成できます。

  • ホストに接続する前に、ユーザから情報を収集する VBA UserForm のダイアログボックスを表示する

  • .ini ファイルから読み取る

  • ホストまたはルータの可用性を確認する

  • Reflection の設定を構成する

    注意:ワークスペースが開始した時に実行するよう設定できるのは、共通プロジェクトのマクロだけです。[Reflection ワークスペースマクロの実行] 操作では、セッションドキュメント (rd0xrd3xrd5x) 内のマクロを実行するように構成しないでください。このように構成してしまうと、Reflection が正常に起動しなくなります。

起動マクロを設定するには

  1. [ワークスペースの設定] の下の [ワークスペース設定の構成] をクリックします。

  2. [ワークスペースとドキュメント][ワークスペースを開始するとき] 一覧から、[起動操作を実行する] を選択します。

  3. [操作の選択] をクリックします。

  4. [操作][Reflection ワークスペースマクロの実行] を選択します。

  5. [操作パラメータ] から [マクロの選択] を選択します。

  6. [マクロの選択] ボックスで、Reflection が開始した時に実行するマクロを選択します。

3.6.6 ホスト接続の前または後で実行するマクロの設定

セッションまたはワークスペース用のマクロを作成した場合、接続マクロを実行するようにセッションを設定できます。

接続マクロを設定するには

  1. [設定] ダイアログボックスで、次のいずれかを実行します。

    • (VT) [接続設定の構成] をクリックします。

    • (3270 または 5250) [接続詳細設定の構成] をクリックします。

  2. [接続操作] で、初期接続の前または後でマクロを実行するかどうかを選択します。

  3. [操作の選択] をクリックし、実行するマクロを選択します。

3.6.7 マクロの命名

Visual Basic マクロ (操作手順、定数、変数、引数も含まれる) に命名する際は、次の規則に従ってください。

  • 名前の先頭は文字でなければなりません(大文字と小文字は区別されませんが、大文字は保持されます)。

  • 英数字および下線文字 (_) のみを使用できます。空白およびその他の記号は使用できません。

  • 255 文字未満としてください。

  • Visual Basic または Reflection のコマンドと同じ名前は使用しないでください。コマンドと同じ名前をマクロに付ける必要がある場合は、コマンドの使用時、コマンドを完全修飾名で指定してください。(これを行うには、コマンド名の前に関連するタイプライブラリの名前を指定します。例えば、「Beep」というマクロがある場合、Visual Basic の Beep ステートメントを呼び出すには、「Beep」と指定します。)

  • 単一モジュール内のマクロに一意の名前を付けます。Visual Basic の場合、同一のコードモジュール内で同じ名前のマクロを 2 つ使用することはできません。ただし、2 つのマクロが異なるコードモジュール内にある場合は、同じ名前でもかまいません。例えば、同じコードモジュール内で StartUp という名前のマクロを 2 つ使用することはできませんが、異なるコードモジュール内にある場合は、StartUp という名前のマクロを 2 つ使用することができます。名前が重複していて別のコードモジュールに存在するマクロをコールするには、マクロ名を完全修飾名で指定する必要があります。(例えば、Module1.StartUp と指定すると、Module1 の中の StartUp マクロが起動されます。)