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

3.6.1 VBAマクロの実行

セッションドキュメントファイルに保存されているVBAマクロは、マクロパネルから実行できます。 これは、リボンにボタンを追加せずにマクロを追跡したり、実行したりする場合に便利な方法です。 他の種類のマクロも、[マクロの実行]ダイアログボックスから実行した後、このパネルから実行できるようになります。

マクロパネルでのマクロの実行

マクロパネルを使用して、セッションドキュメントファイルに保存されているVBAマクロを実行したり、参照されたマクロ、EMLマクロ、または他の製品で作成されたマクロなどの、以前にそのセッションで実行したことのあるその他のマクロを実行できます。マクロパネルは、リボンにボタンを追加しなくても、セッションに適用されるマクロの追跡、および実行に便利な方法です。フォーカスのあるセッションに適用されるマクロのみが表示されます。

マクロパネルからマクロを実行するには

  1. マクログループ内の[セッション]タブで、[マクロパネルの表示]をクリックします。

    マクロパネルには、次の3つのタブがあります。

    [使用可能]タブには、セッションドキュメントファイルに保存されているVBAマクロが表示されます。

    メモ:[使用可能]タブには、EMLマクロ、他の製品で作成されたマクロ、またはセッションドキュメントファイルに保存されていないその他のマクロは表示されません。

    [最近]タブには、このセッションで以前に実行したすべてのマクロが表示されます。これには、VBAマクロおよびEMLマクロや他の製品で作成されたマクロなどの実行されたサポートされているその他のマクロも含まれます。

    [お気に入り]タブには、お気に入りとしてマークしたすべてのマクロが表示されます。

  2. マクロを実行するには、実行するマクロの上にマウスを移動し、マクロの左側にある[再生]ボタンをクリックします。

  3. マクロを停止するには、マクロの横にある[停止]ボタンをクリックします。

  4. マクロに関する詳細情報については、マクロの上にマウスを移動します。

    VBAマクロの場合は、マクロがあるVBAプロジェクトおよびモジュールがツールヒントに表示されます。

    その他のマクロについては、マクロの種類およびその完全修飾ファイル名がツールヒントに表示されます。

[マクロの実行]ダイアログボックスからのマクロの実行

セッションドキュメントファイルに保存されていないマクロを最初に実行するときには、[マクロの実行]ダイアログボックスを使用して実行する必要があります。 1回実行したマクロは、マクロパネルの[最近]タブから実行できます。

[マクロの実行]ダイアログボックスからマクロを実行するには

  1. 実行するマクロの種類を選択して開きます。

    マクロが実行されます。

    メモ:1回実行した後は、このマクロをマクロパネルの[最近]タブから実行できます。

他の製品で作成されたマクロの実行

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

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

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

他の製品と共に作成されたマクロを実行するには

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

    メモ:以前のマクロオプションは、互換性機能がインストールされている場合にのみ使用できます。また、外部ファイルからExtra!および以前のReflectionマクロを実行するには、[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 VBAマクロの収録と削除

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

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

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

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

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

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

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

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

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

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

マクロの収録のベストプラクティス

次のベストプラクティスを使用してマクロを注意深く収録すれば、低速なネットワーク接続を使う際に発生する可能性のある問題を回避できます。 低速なネットワーク接続で、収録中に非常に高速に入力したり、セッションで「先行入力」を使用したりすると、マクロが予期しない方法で再生される可能性があります。 以下のベストプラクティスに従うと、最良の結果が得られます。

  • 収録前に計画を立て、実行する手順、押すキー、および予期されるホスト画面を確認してください。

  • マクロの収録中に、キーを押してホストにデータを送信した後、次のキーを押す前に、ホスト画面が完全に表示されるまで待ってください(数秒余分に待つこともあります)。

  • マクロが予想どおりに再生されない場合は、マクロを削除し、ゆっくりと慎重な手順を使用して、マクロを注意深く収録し直してください。

常にマクロの再生は可能な限り高速に実行されるので、マクロをゆっくりと注意深く収録しても、マクロ実行のパフォーマンスが低下することはありません。十分に検討と計画が行われたマクロを収録すれば、最良の結果が得られます。

マクロを収録するには

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

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

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

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

  4. マクロに名前を付け、保存する場所を選択します。

  5. セッションに接続するたびにマクロを実行する場合は、[接続マクロにする]を選択します。

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

  6. マクロが予想どおりに再生されない場合は、マクロを削除し、ベストプラクティスに従ってマクロを注意深く収録し直してください。

マクロを削除するには

  1. [Reflectionワークスペースマクロ]を選択します。

  2. [マクロ]ダイアログボックスで、削除するマクロを選択してから[削除]をクリックします。

3.6.3 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.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 マクロが起動されます。)