| すぐマク YNxv9cz56 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| 括弧が混入した名前のブックのマクロを実行しようとすると実行時エラーが表示されるが? |
|
|
|||
|
拙著をご購読いただき、ありがとうございます。 周りに詳しい方がみえないので本を読みながら・・ と頑張ってみえますね。 ご質問文はよく分かりますし、あなたが作成されたマクロは正確ですよ。 しかし、1カ所だけ、ちょっと疑問を感じるところがあります。 それは、マクロの中のブック名に全角の括弧 ')' を使っている点です。 この場合、ハードディスクに保存されているブック名が半角の括弧 ')' ですと、不一致になるのではないでしょうか。 その点を再確認してから試してみて、 その結果をご連絡くださいませんか。 |
|
|||||
|
お忙しい中、私のつたない質問に対し親切にお答えくださり、本当にありがとうございました。 自分が購入した本の著者ご本人様と、こうして質問のやりとりをさせていただけるのは、とてもありがたく、感激しています。 早速、試してみた結果をご連絡します。 私のPC上では、ブック名も全角括弧でした。 念のため、マクロ名中のブック名の全角括弧と、ブック名そのものの全角括弧を半角括弧に直してマクロを実行してみましたが、同じエラーが出てしまいました。(私が見当違いな直し方をしているかも 知れませんが。。。) しかし、もう一度マクロ名をじーっと眺めて、マクロを途中まで実行しているうちに、あることに気付きました。
「ブック1の中のマクロ中のブック2の中のマクロ名」と、「ブック2の中のマクロ名」とは同じですが、 エラーが出て止まってしまった直後 (ブック1もブック2も開いている状態) にブック1をActiveにして、[ツール]メニュー [マクロ]でマクロ一覧を表示させて見てみたところ、 ブック2の中にあるマクロ名の前にはブック名が付いているのですが・・・ よーく見てみたところ、エラーが出ているマクロ名は右図のとおり、 'Book2(括弧).xls'!呼び出されるマクロ となっていました。 なぜか、ブック名が 勝手に 「'」 で囲まれています。 ここで気付いたのですが、ブック1のマクロの6行目のコードを、Application.Run "'" & ブック名 & "'" & "!" & マクロ名 というふうに書き換えて実行してみたところ、エラーが出なくなり、ブック2のマクロを実行させることが出来ました。 エラーが出なくなったのは嬉しいですが、なぜブック1上のマクロ一覧でブック2のマクロを見ると、ブック名が「'」で囲まれてしまうのかが分かりません。 こういう現象が起きる原因をもしご存知でしたら教えてください。 よろしくお願いします。 |
|
|||
|
すごいですね。よく気が付かれました。周りに詳しい人がいないということなのに、優れた観察力をお持ちです。 [マクロ]ダイアログの [マクロ名]一覧では、マクロ名の前にブック名が付く場合でも、通常、' (アポストロフィ)は付かないのに、ブック名に括弧が混入していると ' が付くということですね。 あなたから頂いた情報は、きっと、他の読者さまにも参考にしていただけますよ。 自動的に ' が付与される理由については、マイクロソフト社に問い合わせれば分かるかも知れませんね。 しかし、推測ですが、VBAとしては、ブック名に混入している括弧が支障になる場合があるからではないでしょうか。 本の025ページに掲載されている 「Visual Basicの名前付け規則のポイント」の 「(2)使用禁止文字」 に例示されている7つの記号の中に括弧は含まれていません。 が、括弧は Subステートメントで引数の括りとして使われている等、特別の意味を持つ場合が多いから具合が悪いのでしょう。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |