Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


28079 / 76732 ←次へ | 前へ→

【53961】Re:全てのブックからCALL出来るプロシージャ
発言  ichinose  - 08/2/18(月) 17:32 -

引用なし
パスワード
   ▼ko-papa さん:
こんにちは。
そんなに間違っている記述には見えませんけどねえ・・・。

WindowsのバージョンとExcelのバージョンを記述してください。

私は、Win2000&EXCEL2002ですが、同じような共有モジュール
(実際には、共有プロジェクト でしょうか)という方法を
いくつも使っていますよ!!

私は、この共有プロシジャーをXLAファイルつまり、アドインとして
登録しています。


・新規ブックの ThisWorkbookのモジュールに例としてのプロシジャー

'==========================================================
Option Explicit
Sub 足し算(ByVal x As Variant, ByVal y As Variant, z As Variant)
  z = x + y
End Sub

簡単な足し算するコードです。


・このブックのプロジェクト名をVBA Projectのプロパティにて
「共有プロシージャ」と書き換えます。

・当該ブックをアドインとして、保存します。
 保存ファイル名も共有プロシージャ.XLAとしましょう。

・Excelに戻って、「ツール」---「アドイン」とクリックし、
 アドインダイアログを表示させます。

・有効なアドインの一覧に「共有プロシージャ」があれば、チェックを入れてください。

・なければ、参照ボタンをクリックして、「共有プロシージャ.XLA」を保存した
 フォルダを見つけて選択してください。

・これでアドイン「共有プロシージャ」の設定がなされます。

・一度、Excelを終了し、再度Excelを起動してみてください。

・新規ブックの作成してください(もっともExcel起動すれば、新規ブックが
 作成されているはずですが)

・VBEにて、この新規ブック(BOOK1)のプロジェクトをアクティブにした状態で
 「ツール」---「参照設定」にて、共有プロシジャーにチェックを入れてください。

・BOOK1の標準モジュールに

'============================================================
Sub main()
  Dim a As Long, b As Long, c As Long
  a = 55: b = 45
  共有プロシジャー.ThisWorkbook.足し算 a, b, c
  MsgBox a & "+" & b & " = " & c
End Sub

上記のmainを実行すれば、100という答えが表示されます

もっとも私の環境では、参照設定をしなくても

'===============================================================
Sub main2()
  Dim a As Long, b As Long, c As Long
  a = 55: b = 45
  Workbooks("共有プロシジャー.xla").足し算 a, b, c
  MsgBox a & "+" & b & " = " & c
End Sub

というコードでも正しい結果(55+45=100)を表示します。

Personalにコードを入れるより、アドインにしたほうが後々の扱いは
楽だと思いますよ!!
(内容によっては、プロジェクトを分けられるしね)

私の場合、実際の運用は、上記とはちょっと違い、
クラスモジュールにコードを記述して
必要に応じて、呼び出し側でインスタンスを作成すると言うような運用を
していますが、まあこれがうまくいくようなら検討してみてください。

0 hits

【53959】全てのブックからCALL出来るプロシージャ ko-papa 08/2/18(月) 15:38 質問
【53961】Re:全てのブックからCALL出来るプロシージャ ichinose 08/2/18(月) 17:32 発言
【53965】Re:全てのブックからCALL出来るプロシージャ ko-papa 08/2/18(月) 19:43 お礼
【54023】Re:全てのブックからCALL出来るプロシージャ ko-papa 08/2/20(水) 12:12 お礼

28079 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free