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)
-
Application.Runエラー(1004)
Excel(エクセル)
-
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
-
4
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
5
VBSでEXCELのXLSTARTにあるマクロを実行するには
その他(プログラミング・Web制作)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
【Excel VBA】ファイル名が一定でないファイルの指定方法
Excel(エクセル)
-
8
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
9
エクセルVBA 「Application.Run」について
Excel(エクセル)
-
10
エクセルStatusBar表示が変化しない
Excel(エクセル)
-
11
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
12
Excel>PERSONAL.XLSが開かれているので読み取り専用を推奨されてしまう
Excel(エクセル)
-
13
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
14
マクロの連続実行
Access(アクセス)
-
15
Excel-VBAでInputBox+Pulldownは可能??
Visual Basic(VBA)
-
16
テキストボックスのカーソル位置の取得・設定方法
Visual Basic(VBA)
-
17
スクロールしてもボタンを常に表示させたい。Excel2002
Excel(エクセル)
-
18
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
19
(Excel VBA)and,orについて
Excel(エクセル)
-
20
コンボボックス内の文字サイズ変更
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
EXcelのマクロで相対パスでファ...
-
エクセル関数>参照ファイル名...
-
複数のExcelファイルの印刷設定...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
【Excel】マクロの保存先について
-
excelで直前に参照していたブッ...
-
ExcelVBAで困っています。
-
エクセルで未保存に対するメッ...
-
Excel VBEを起動しようとしたら...
-
[フィルターオプションの設定]...
-
ExecuteExcel4Macroを使って他...
-
名前の変わるブックをアクティ...
-
エクセル;相対パスを絶対パスへ...
-
ファイルごとにセルの移動方向...
-
excelファイルが意図せず起動
-
VBA ユーザーフォームとVISIBL...
-
個人用マクロブックが消えました
-
エクセルでメッセージボックス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAで保存しないで閉じると空の...
-
エクセル関数>参照ファイル名...
-
【Excel VBA】マクロでExcel自...
-
マクロの保存先、開いてるすべ...
-
【Excel】マクロの保存先について
-
エクセル;相対パスを絶対パスへ...
-
EXcelのマクロで相対パスでファ...
-
[フィルターオプションの設定]...
-
excelで直前に参照していたブッ...
-
複数のExcelファイルの印刷設定...
-
エクセルのvbaにて thisworkboo...
-
EXCELのボタンによるマクロの登...
-
名前の変わるブックをアクティ...
-
エクセルVBAで作成した別ブック...
-
エクセルで使用期限付きのブッ...
-
【Excel】特定セルの内容をテキ...
-
エクセルで未保存に対するメッ...
-
EXCELマクロで、開いてはいるが...
-
複数のbookから特定のセル(行...
-
エクセルVBA 個人用マクロブッ...
おすすめ情報