dポイントプレゼントキャンペーン実施中!

以前、ExcelのVBAでプロセデュア間での情報の受け渡しに使用できるエリアを使用しました。
しかし、その方法をすっかり忘れてしまいました。
どのブックで使用したかも調べましたが分かりませんでした。
確か[参照の追加]とかをしたような気がしますが?
現在作成中のアプリで以前の方法を使用したく、その方法をご教示頂きたくお願いします。

先にこの場でVBAの質問した際、頂いた回答にベストアンサーをしないで失礼な終了の仕方をしてしまいました。この場を借りて解答者にお詫び致します。お許しください。

A 回答 (3件)

こんばんは


既に回答が出ている中、こだわりのある手法に当てはまるか分かりませんし素人の私が回答できるほどのスキルを持ち合わせていませんがプロシージャ間でやり取りをする方法を具体的な掲示ではありませんが挙げて見ます
(前置き長くてごめんなさい・・既にあるものをは割愛して)

>現在作成中のアプリ・・
#1様の3)に重複する内容だと思いますが

①ルートフォルダにアドイン類をインストールし登録、参照設定を行い
参照先を介して受け渡しを行う方法
この場合、アプリ本体だけでは正しく機能しない(起動抑制)などを行う事が可能ですし2次加工、ユーザー関数(スパゲッティ化)などにも使えます
#1様の ”別ブック、あるいはテキストファイル等を利用して” と(VBAですが)同様の意です

②オブジェクトと言う意味ではリボンのオブジェクト(XML)をカスタムしてコントロールのプロパティを介して受け渡す方法です
この場合Excel機能の制限やUIとして利用する事も出来ます

この様な手法はアプリとしてExcelを活用する時に(限定的な操作、使用制限を行いたい時などに)私的に使う方法です
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

今までに作成したアプリを片っ端から調べてみました。
やっと拘っているそれを見つけることができました。
VBAではなくVB.netのアプリでした。

それは、ApplicationSettingsBaseクラスを使用していたものでした。
皆様の貴重なご意見及び知見を提供して頂き、改めてありがとうございました。

お礼日時:2023/04/30 01:20

単にprocedure間でデータを共有したいだけなら、グローバル変数を使うのが簡単です。



> 確か[参照の追加]とかをしたような気がしますが?
組み込みでない機能を使った回答があってそれが適合したと言うことであれば、データを共有したい以外の要件があったと思いますが、その要件が不明だと、他人が想像するのは無理ですね。

「えっと、あの人の名前なんだっけ?ほら、俳優の」という質問みたいな感じです。
    • good
    • 0
この回答へのお礼

サポートありがとうございます。

今までに作成したアプリを片っ端から調べてみました。
やっと拘っているそれを見つけることができました。
VBAではなくVB.netのアプリでした。

それは、ApplicationSettingsBaseクラスを使用していたものでした。
皆様の貴重なご意見及び知見を提供して頂き、改めてありがとうございました。

お礼日時:2023/04/30 01:19

こんばんは



>情報の受け渡しに使用できるエリアを使用しました。
>しかし、その方法をすっかり忘れてしまいました。
>その方法をご教示頂きたくお願いします。
どのような方法なのかのヒントも無いので、「その方法」に関しては何とも言いようがないのですが・・

異なるプロシージャ間で、変数等を共有する方法はいくつか考えられます。
すぐに思いつく方法を以下に挙げておきますので、ご参考にでもなれば。

1)引数として受け渡す。
一番簡単な方法で、単純に変数等をパラメータとして渡す方法ですが、一方から他方をCallする関係になっている必要があります。
ByValは値の受け渡し、ByRefは参照での受け渡しが可能です。
https://learn.microsoft.com/ja-jp/dotnet/visual- …

2)共通変数(グローバル変数)を設けておく。
複数のプロシージャから参照可能な変数を設けておく方法で、事前に宣言しておく必要があります。
スコープ範囲内のプロシージャからであれば、共通で参照・値の変更等が可能です。
https://learn.microsoft.com/ja-jp/office/vba/lan …

3)シート等のメモリ以外の場所に記憶しておく。
文字通りですが、1)や 2)の方法では Excelを終了すると値が失われてしまうのに対して、値を保持し続けられるというメリットがあります。
具体的には、非表示の専用シート(=非表示出なくても良いですが)や、別ブック、あるいはテキストファイル等を利用して、値を記録(=保持)しておくという方法です。
必要に応じて、記入・読出しを行わなければなりませんけれど、安定して記録しておくことが可能です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

教えて頂いた方法で、私のやりたいことは可能だと思いますが、過去の方法はないように思います。
記憶違いがあると思いますが、どうしても過去の方法にこだわっています。

お礼日時:2023/04/16 14:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!