VBAマクロの記録、実行、編集
頻繁に行われるタスクを単純化および自動化するために、Visual Basic for Application (VBA)マクロを作成して実行できます。
VBAマクロの実行
セッションドキュメントファイルに保存されているVBAマクロは、マクロパネルから実行できます。 これは、リボンにボタンを追加せずにマクロを追跡したり、実行したりする場合に便利な方法です。 他の種類のマクロも、[マクロの実行]ダイアログボックスから実行した後、このパネルから実行できるようになります。
マクロパネルでのマクロの実行
マクロパネルを使用して、セッションドキュメントファイルに保存されているVBAマクロを実行したり、参照されたマクロ、EMLマクロ、または他の製品で作成されたマクロなどの、以前にそのセッションで実行したことのあるその他のマクロを実行できます。マクロパネルは、リボンにボタンを追加しなくても、セッションに適用されるマクロの追跡、および実行に便利な方法です。フォーカスのあるセッションに適用されるマクロのみが表示されます。
マクロパネルからマクロを実行するには
-
マクログループ内の[セッション]タブで、[マクロパネルの表示]をクリックします。
マクロパネルには、次の3つのタブがあります。
[使用可能]タブには、セッションドキュメントファイルに保存されているVBAマクロが表示されます。
メモ
[使用可能]タブには、EMLマクロ、他の製品で作成されたマクロ、またはセッションドキュメントファイルに保存されていないその他のマクロは表示されません。
[最近]タブには、このセッションで以前に実行したすべてのマクロが表示されます。これには、VBAマクロおよびEMLマクロや他の製品で作成されたマクロなどの実行されたサポートされているその他のマクロも含まれます。
[お気に入り]タブには、お気に入りとしてマークしたすべてのマクロが表示されます。
-
マクロを実行するには、実行するマクロの上にマウスを移動し、マクロの左側にある[再生]ボタンをクリックします。
-
マクロを停止するには、マクロの横にある[停止]ボタンをクリックします。
-
マクロに関する詳細情報については、マクロの上にマウスを移動します。
VBAマクロの場合は、マクロがあるVBAプロジェクトおよびモジュールがツールヒントに表示されます。
その他のマクロについては、マクロの種類およびその完全修飾ファイル名がツールヒントに表示されます。
[マクロの実行]ダイアログボックスからのマクロの実行
セッションドキュメントファイルに保存されていないマクロを最初に実行するときには、[マクロの実行]ダイアログボックスを使用して実行する必要があります。 1回実行したマクロは、マクロパネルの[最近]タブから実行できます。
[マクロの実行]ダイアログボックスからマクロを実行するには
-
[マクロの実行]ダイアログボックスを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 リボン [セッション]タブの[マクロ]グループで、[マクロの実行]をクリックします。 クラシックおよびクラシックMDI [マクロ]メニューで、[マクロ]を選択します。 -
実行するマクロの種類を選択して開きます。
マクロが実行されます。
メモ
1回実行した後は、このマクロをマクロパネルの[最近]タブから実行できます。
他の製品で作成されたマクロの実行
Reflectionで作成したVBAマクロ、Extra!および以前のReflection製品で作成されたほとんどのマクロを実行できます。また、Open Text Rumba、IBM Personal Communications、OpenText HostExplorer、およびBrandon Systems/Jolly Giant QWS 3270製品で作成したマクロもほとんどを実行できます。ただし、マクロは信頼された場所でのみ実行できます。
マクロ関連の操作 (Reflection ワークスペースマクロの実行など) には、[操作の選択] ダイアログボックスから実行できるものがあります。
また、操作をコントロールにマッピングしてマクロを実行することもできます。詳細については、「マクロを実行するためのボタンの追加」を参照してください。
他の製品で作成されたマクロを実行するには
-
[マクロの実行]ダイアログボックスを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 Reflection リボン [マクロ] タブの [詳細設定] グループから [マクロの実行] をクリックします。 Reflection ブラウザ [Reflection] メニューから、[ツール] - [マクロ] - [マクロの実行] を選択します。 TouchUx レンチのアイコンをタップし、[マクロ] - [[マクロの実行] ダイアログボックスの表示] を選択します。 -
[マクロの実行] ダイアログボックスから、実行するマクロを選択します。
選択 結果 [Reflectionワークスペースマクロ] アクティブなセッションドキュメントのマクロを表示します。 Reflection セッションドキュメントで作成したマクロを実行する場合に選択します。 共通プロジェクトや他のドキュメントでマクロを実行するには、 オプションを[含まれるマクロ]メニューから選択します。 [このファイルにある以前のReflectionマクロ] アクティブなドキュメントで以前のマクロを実行します。これらのマクロには以前の設定ファイル( .rsf
、.r2w
、または.r4w
)が含まれます。Reflectionでは、設定ファイルから以前に変換されたセッションドキュメント(.rd3x
、.rd5x
、.rdox
)が含まれます。[別のファイルにある以前のReflectionマクロ] SharedMacroファイル( .rma
)または設定ファイル(.rsf
、.r2w
、または.r4w
)にあるマクロを指定して、実行します。[以前のRBマクロ] Reflection Basicマクロ( .rbs
)を指定して、実行します。[Extra! マクロ] Extra! マクロファイル( .ebm
)を指定して、実行します。[QWSマクロ] Brandon Systems\Jolly Giant QWS3270マクロファイル( .jgs
)を指定して、実行します。[IBM Personal Communicationsマクロ] IBM Personal Communicationsマクロファイル( .mac
)を指定して、実行します。メモ
以前のマクロオプションは、互換性機能がインストールされている場合にのみ使用できます。また外部ファイルからExtra! および以前のReflectionマクロを実行するには、[APIとマクロのセキュリティの設定]ダイアログボックスから、実行しようとしている以前のマクロの種類を指定する必要があります。
-
[ワークスペース]マクロが見つからない場合は、[設定]ウィンドウで[VBA参照の設定]を選択して[VBA参照の追加]マクロダイアログボックスを開き、欠落している参照(ボタンで示されている)をリストで確認します。問題(通常はファイルが見つからないか、ネットワークドライブが接続されていない)を修正したら、セッションを閉じてもう一度開きます。
VBAマクロの収録と削除
ホストアプリケーションとの以下のようなやり取りを自動化する VBA マクロを収録できます。
-
ホストアプリケーションへのデータの送信、ホストアプリケーションでのテキストの入力。
-
1 つのホストアプリケーションから別のホストアプリケーションへのテキストまたはデータの切り取り、コピー、貼り付け。
-
1 つのホストアプリケーションから別のホストアプリケーションに移動するタブの切り替え。
-
マウスでテキストを選択するか、マウスをクリックしてカーソルを移動する (マウスクリックはカーソル位置として記録されます。)
以下の操作は収録できません。
-
Reflection設定および生産性機能(スペルチェック、自動拡張、オートコンプリートなど)のやり取り。
-
ホストへの接続またはホストからの切断。
-
Web アプリケーションとのやり取り。
-
ホストから外部アプリケーション (例えばメモ帳) への切り取りまたは貼り付け。
Reflection Desktopリボンを使用しているときにマクロを記録する方法
Reflection Desktopクラシックインタフェースを使用しているときにマクロを記録する方法
マクロの収録のベストプラクティス
次のベストプラクティスを使用してマクロを注意深く収録すれば、低速なネットワーク接続を使う際に発生する可能性のある問題を回避できます。 低速なネットワーク接続で、収録中に非常に高速に入力したり、セッションで「先行入力」を使用したりすると、マクロが予期しない方法で再生される可能性があります。 以下のベストプラクティスに従うと、最良の結果が得られます。
-
収録前に計画を立て、実行する手順、押すキー、および予期されるホスト画面を確認してください。
-
マクロの収録中に、キーを押してホストにデータを送信した後、次のキーを押す前に、ホスト画面が完全に表示されるまで待ってください(数秒余分に待つこともあります)。
-
マクロが予想どおりに再生されない場合は、マクロを削除し、ゆっくりと慎重な手順を使用して、マクロを注意深く収録し直してください。
常にマクロの再生は可能な限り高速に実行されるので、マクロをゆっくりと注意深く収録しても、マクロ実行のパフォーマンスが低下することはありません。十分に検討と計画が行われたマクロを収録すれば、最良の結果が得られます。
マクロを収録するには
-
マクロを収録する場合に選択します。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 リボン [マクロ]タブの[詳細設定]グループで、[VBAの収録]をクリックします。 Reflectionブラウザ [Reflection]メニューで、[ツール]、[マクロ]、[VBAマクロの収録]の順に選択します。 TouchUx レンチのアイコンをタップし、[マクロ] - [VBA マクロの収録] を選択します。 -
自動化するタスクを実行します。
-
(オプション) 別のタスクを実行するために収録を中断する必要がある場合は、[収録の停止] をクリックします。収録を再開する用意ができたら、[収録の停止] を再度クリックします。
-
マクロの収録を終了したら、[収録の終了] をクリックします。
[収録の完了] ダイアログボックスが表示されます。
-
マクロに名前を付け、保存する場所を選択します。
-
セッションに接続するたびにマクロを実行する場合は、[接続マクロにする]を選択します。
メモ
Visual Basicエディタを使用して収録したマクロの微調整ができます。詳細については、「マクロの編集」を参照してください。
-
マクロが予想どおりに再生されない場合は、マクロを削除し、ベストプラクティスに従ってマクロを注意深く収録し直してください。
マクロを削除するには
-
[マクロの実行]ダイアログボックスを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 リボン [セッション]タブの[マクロ]グループで、[マクロの実行]をクリックします。 クラシックおよびクラシックMDI [マクロ]メニューで、[マクロ]を選択します。 -
[Reflectionワークスペースマクロ]を選択します。
-
[マクロ]ダイアログボックスで、削除するマクロを選択してから[削除]をクリックします。
Visual Basicエディタでのマクロの作成
可能な限り、マクロはモジュール内で作成します。それによって、プログラムの整合性および安定性が向上します。ただし、イベントプロシージャは例外で、Reflection オブジェクトに直接追加されます。
Visual Basic エディタでマクロを作成するには
-
Reflectionで、セッションドキュメントを開きます。
-
Visual Basicエディタを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 Reflection リボン [マクロ] タブから、[Visual Basic] をクリックします。 Reflection ブラウザ [Reflection] メニューで、[ツール]、[マクロ] そして [Visual Basic] を選択してください。 TouchUx レンチアイコンをタップして、[マクロ] の下で [Visual Basic] を選択してください。 セッションドキュメントは、[プロジェクトエクスプローラ]内でプロジェクト(たとえばプロジェクト(
My Session.rd3x
))として表示されます。 -
[プロジェクトエクスプローラ]で、マクロの保存先プロジェクトを選択した後、[挿入]>[モジュール]を選択し、新しいモジュールを作成します。
-
作成したモジュールをダブルクリックします。
[コード] ウィンドウが開きます。
-
[挿入]>[プロシージャ]を選択した後、[名前]ボックスに名前を入力し、[OK]をクリックします。
選択する名前は、Visual Basicのマクロの命名規則に従っていなければなりません。詳細については、「マクロの命名」を参照してください。
-
マクロのコードを、
Sub
(またはPublic Sub
) ステートメントとEnd Sub
ステートメントの間に入力します。Visual Basic のコマンドでは、文脈依存ヘルプを利用できます。コマンド内で挿入位置を指定し、[F1] キーを押します。
マクロの編集
Visual Basic エディタを使用して Reflection マクロを編集します。
マクロを編集するには
-
Visual Basicエディタを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 Reflection リボン [マクロ] タブから、[Visual Basic] をクリックします。 Reflection ブラウザ [Reflection] メニューで、[ツール]、[マクロ] そして [Visual Basic] を選択してください。 TouchUx レンチアイコンをタップして、[マクロ] の下で [Visual Basic] を選択してください。 [マクロ] ダイアログボックスが表示されます。
-
[マクロ名] ボックスで、編集するマクロの名前を選択し [編集] をクリックします。
-
Visual Basic エディタで、マクロコマンドを入力するか編集します。
-
[ファイル] - [<ファイル名> の上書き保存] コマンドをクリックします。
起動マクロの実行
セッションが開き、ホストに接続した時ではなく、Reflectionのワークスペースが開始した時に、Visual Basic for Applications (VBA)マクロが実行されるよう設定することができます。
そうすると、ユーザの接続方法に関する情報を収集し、その情報を用いてセッション設定を構成できるようになります。
例えば、次のようなタスクを実行する起動マクロを作成できます。
-
ホストに接続する前に、ユーザから情報を収集する VBA UserForm のダイアログボックスを表示する
-
.ini
ファイルから読み取る -
ホストまたはルータの可用性を確認する
-
Reflectionの設定を構成する
注意
ワークスペースが開始した時に実行するよう設定できるのは、共通プロジェクトのマクロだけです。[Reflectionワークスペースマクロの実行]操作では、セッションドキュメント(rd0x
、rd3x
、rd5x
)内のマクロを実行するように構成しないでください。このように構成してしまうと、Reflectionが正常に起動しなくなります。
起動マクロを設定するには
-
[Reflection ワークスペースの設定] ダイアログボックスを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 リボン [ファイル]メニューまたは[Reflection]ボタン(Office 2007のルックアンドフィールを使用している場合) から、[Reflectionワークスペースの設定]を選択します。 Reflectionブラウザ [Reflection]メニューで、[設定]、[Reflectionワークスペースの設定]の順に選択します。 TouchUx 歯車のアイコンをタップして、[Reflection ワークスペースの設定] を選択します。 -
[ワークスペースの設定] の下の [ワークスペース設定の構成] をクリックします。
-
[ワークスペースとドキュメント] の [ワークスペースを開始するとき] 一覧から、[起動操作を実行する] を選択します。
-
[操作の選択] をクリックします。
-
[操作] で [Reflection ワークスペースマクロの実行] を選択します。
-
[操作パラメータ]から[マクロの選択]を選択します。
-
[マクロの選択]ボックスで、Reflectionが開始した時に実行するマクロを選択します。
ホスト接続の前または後で実行するマクロの設定
セッションまたはワークスペース用のマクロを作成した場合、接続マクロを実行するようにセッションを設定できます。
接続マクロを設定するには
-
[設定]ウィンドウを開きます。手順は、ユーザインタフェースモードによって異なります。
ユーザインタフェースモード 手順 リボンまたはReflectionブラウザ Reflectionでセッションが開いている状態で、クイックアクセスツールバーから をクリックします。 TouchUx 歯車のアイコンをタップして、[ドキュメントの設定]を選択します。 -
[設定]ダイアログボックスで、次のいずれかを実行します。
-
(VT) [接続設定の構成] をクリックします。
-
(3270 または 5250) [接続詳細設定の構成] をクリックします。
-
-
[接続操作] で、初期接続の前または後でマクロを実行するかどうかを選択します。
-
[操作の選択] をクリックし、実行するマクロを選択します。
マクロの命名
Visual Basic マクロ (操作手順、定数、変数、引数も含まれる) に命名する際は、次の規則に従ってください。
-
名前の先頭は文字でなければなりません(大文字と小文字は区別されませんが、大文字は保持されます)。
-
英数字および下線文字(_)のみを使用できます。空白およびその他の記号は使用できません。
-
255 文字未満としてください。
-
Visual Basic または Reflection のコマンドと同じ名前は使用しないでください。コマンドと同じ名前をマクロに付ける必要がある場合は、コマンドの使用時、コマンドを完全修飾名で指定してください。(これを行うには、コマンド名の前に関連するタイプライブラリの名前を指定します。例えば、「Beep」というマクロがある場合、Visual Basic の
Beep
ステートメントを呼び出すには、「Beep」
と指定します。) -
単一モジュール内のマクロに一意の名前を付けます。Visual Basic の場合、同一のコードモジュール内で同じ名前のマクロを 2 つ使用することはできません。ただし、2 つのマクロが異なるコードモジュール内にある場合は、同じ名前でもかまいません。例えば、同じコードモジュール内で StartUp という名前のマクロを 2 つ使用することはできませんが、異なるコードモジュール内にある場合は、StartUp という名前のマクロを 2 つ使用することができます。名前が重複していて別のコードモジュールに存在するマクロをコールするには、マクロ名を完全修飾名で指定する必要があります。(例えば、Module1.StartUp と指定すると、Module1 の中の StartUp マクロが起動されます。)