
No.2ベストアンサー
- 回答日時:
こんにちは。
>なぜでしょう?
理由は、グローバル化していないからです。
私は、長い間、分かりませんでした。
標準モジュールなら、Private を付けないかぎりは、Public 化していますが、それでは、一つのブックの中でしか通用しません。例えばユーザー定義関数を作って、別のブックの標準モジュール に保管したものも使えません。
通常は、#1さんが示しているように、Application.Run で呼び出しをしますが、常に使うものには、そういう面倒なことをしたくないものです。
その場合、呼び出される(マクロを登録した)ブックを、マクロを呼び出す側のVBE のツールから、参照設定を使うのです。ただし、VBProject という名称は、ダブってしまいますので、呼び出されるブックのプロパティのVBProject の名前は換えてください。また、プロシージャ名や関数名も一意のものにします。
当然、参照設定すると、今度は元のブックを開くと、呼び出されるブックは自動的についてきます。それはうっとうしいわけです。
だから、その呼び出される側のブックをアドイン化してしまうということをします。
ただし、個人用マクロブックに対しては、Excelでは参照設定しないのが一般的です。理由は知りませんが、もしかすると、個人用マクロブックは、一般のユーザーが知らないようなデータも含んでいるのかもしれません。個人用マクロブックは取り扱いには慎重に扱ったほうが良いようです。MS-Wordの場合は、最初から設定が入っています。
えてください。圧倒的に前者のRun を使う方が多いですが、参照設定自体は、手動だけでなく、マクロで自動的に設定が可能です。Application.Run で行うか、参照設定にするかは、その状況によって変えてください。
No.3
- 回答日時:
こんばんは。
>えーそりゃないよ引数付はダメじゃん、が感想です。
こんな感じで処理することもあります。
'//
'TestBook1.xlsmが同じフォルダーにある場合
num = 5
Application.Run "'TestBook1.xlsm'!Module1.MyTestArg(" & num & ")"
'ただ、あまりうまくいくとはいえません。これは、文字の引数が受けられません。
'やはり、Call の方が上です。
'--------------
Public Sub MyTestArg(arg)
If IsNumeric(arg) Then
MsgBox arg ^ 2
Else
MsgBox "文字? " & arg
End If
End Sub
'//
No.1
- 回答日時:
ブックが違うものはCallでは呼べません。
Book1
Sub Test()
Application.Run "PERSONAL.XLSB!Module1.Macro1"
End Sub
PERSONAL.XLSB
Sub Macro1()
Range("A1").Selelct
End Sub
いやいや使いたい時にいつでも実行出来るように登録するのが個人用⚫⚫⚫
と書こうとしたところで分かりました。
他所からcallするのがダメなのですね。
えーそりゃないよ引数付はダメじゃん、が感想です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
-
4
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
7
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
-
8
vbaで指定したセルより下の行を指定する方法について vbaの質問です。 例えば、「C6」セルより下
Excel(エクセル)
-
9
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
-
10
Access サブフォームでの選択行の取得
その他(データベース)
-
11
【Excel VBA】マクロでExcel自体を終了させたい
Excel(エクセル)
-
12
作ったマクロが増えてきて、どう管理したらよいか
Excel(エクセル)
-
13
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
14
エクセル CALL ステートメント
Excel(エクセル)
-
15
マクロの連続実行
Access(アクセス)
-
16
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
-
17
エクセル・VBA CheckBoxのオブジェクト名に変数を使うことは可能でしょうか?
Excel(エクセル)
-
18
VBで構造体の配列を関数に渡す方法?
Visual Basic(VBA)
-
19
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
20
EXCELのVBAでシートコピーをしたとき元のマクロを削除するには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
エクセル;相対パスを絶対パスへ...
-
同一フォルダ内のファイルを開く
-
【Excel】マクロの保存先について
-
エクセルで複数ファイルのセル...
-
マクロの保存先、開いてるすべ...
-
名前の変わるブックをアクティ...
-
EXCELマクロで、開いてはいるが...
-
EXcelのマクロで相対パスでファ...
-
excelで直前に参照していたブッ...
-
エクセル マクロを実行したブ...
-
エクセルのvbaにて thisworkboo...
-
エクセル タスクスケジューラ...
-
EXCELのボタンによるマクロの登...
-
エクセルVBA 個人用マクロブッ...
-
複数のbookから特定のセル(行...
-
個人用マクロブックの有無
-
Excel:VBAブック保存時にマクロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
EXcelのマクロで相対パスでファ...
-
エクセル;相対パスを絶対パスへ...
-
複数のExcelファイルの印刷設定...
-
【Excel】マクロの保存先について
-
excelで直前に参照していたブッ...
-
マクロの保存先、開いてるすべ...
-
エクセルVBAで作成した別ブック...
-
EXCELマクロで、開いてはいるが...
-
【Excel】特定セルの内容をテキ...
-
エクセルデータを別のエクセル...
-
複数のExcelブックから特定シー...
-
エクセルのvbaにて thisworkboo...
-
個人用マクロブックが消えました
-
EXCELのボタンによるマクロの登...
-
EXCELブックが勝手に開いて困っ...
-
名前の変わるブックをアクティ...
-
エクセルを開いて文字を打つ際...
おすすめ情報