advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 27286 for マクロ (0.014 sec.)
[[20200822102052]]
#score: 2168
@digest: b53cec9b3aff71e8e747d00b074de9c3
@id: 84843
@mdate: 2020-08-24T06:49:25Z
@size: 7326
@type: text/plain
#keywords: subproc (24754), ロ'← (23246), ャ名 (12697), ロシ (9914), シジ (7845), モジ (7780), ジュ (7436), 「他 (6998), ジャ (6417), module (6312), ロ」 (6079), チモ (5699), チオ (5596), オチ (4735), ル名 (4602), ュー (4424), プロ (4376), ユニ (4214), ー名 (3837), ャー (3806), とプ (3692), 単体 (3461), ニー (3310), ール (3277), ルエ (3235), 田太 (2970), 、モ (2817), 同一 (2793), パイ (2766), のマ (2761), ンパ (2730), マク (2613)
『Module名の変更』(T20)
あるマクロ内で他のマクロを実行しようとして「コンパイルエラー」になりました。 「他のマクロ」は標準モジュール内にあり、それ単体での実行に問題はありません。 この「他のマクロ」はプロパティウィンドでModule名を「他のマクロ」に変えていたので、 元に戻したらエラー回避できました。(全くの思いつきでした) ただ、ブック内に多数のマクロがあるのでModule名は特定したいです。 いい方法ないでしょうか? Sub あるマクロ() '(あるマクロの処理) Call 他のマクロ '←コンパイルエラー End Sub < 使用 アプリ:2010、使用 OS:Windows10 > ---- 「Module他のマクロ」としたらOKでした。 名称の付け方が悪かったようです。 失礼しました… (T20) 2020/08/22(土) 10:28 ---- 解決済みのようですが、コメントします。 モジュール名も付してプロシージャを呼ぶときは、 Call module1.test といった形式になるはずです。 >Call 他のマクロ というのはモジュール名だけで、プロシージャを指定していないから エラーになったのでしょう。 その際、 "モジュールではなく、変数もしくはプロシージャを指定してください。" と表示されたはずです。 >「Module他のマクロ」としたらOKでした。 2バイト系文字で始まるモジュール名は不可、とかあるんでしょうか? 手元では再現しませんでした。(他のマクロ というモジュール名でもOK) 余り私は聞いたことはありませんでしたが。 (γ) 2020/08/22(土) 13:21 ---- >「他のマクロ」は標準モジュール内にあり、それ単体での実行に問題はありません。 >この「他のマクロ」はプロパティウィンドでModule名を「他のマクロ」に変えていたので モジュール名とプロシジャー名を同じにすると、誤動作と言うかまともに動かなかった記憶があります。 マクロが無い?とかの類だったような・・・。 (Why) 2020/08/22(土) 14:17 ---- >名称の付け方が悪かった まあ そうとも言えますが、 「他のマクロ」という名前がかぶっているので 「他のマクロ」というプロシージャがあるモジュール名(仮にModule2であれば)を明記して Call Module2.他のマクロ とすればOKです。 (チオチモリン) 2020/08/22(土) 14:25 ---- ああ、モジュール名とプロシージャ名が同一という話でしたか。 ご教示ありがとうございます。 mその他 とか書くかも私なら。 (γ) 2020/08/22(土) 15:35 ---- 「モジュール名とプロシジャー名が同じ」はNG、とは知りませんでした。 ネットでは、“好きな名前でOK”みたいなこと書いてありましたが。 てっきり、名前の先頭に「Module」が必要なんだとまたもや思い込んでしまいました。 単体では同一名でも実行に問題ないので、なんだかなぁ〜…という感じです。 他にも同一名に変更してあるのが結構あるので、忘れないようにします。 ありがとうございました、 これからもよろしくお願いします。 (T20) 2020/08/23(日) 11:36 ---- >「モジュール名とプロシジャー名が同じ」はNG ではありませんよ。誤解なきよう >“好きな名前でOK” ですが、重複する場合にはそれなりの記述法が必要になるということです。 ※ 同一モジュール内でのプロシージャ名の重複は許されてないので、同じブック内であれば どのモジュールのプロシージャかを指定すればユニークな指定になります。 (チオチモリン) 2020/08/23(日) 14:33 ---- 益々わからなくなってきました… 今回のケースでは、 「同一モジュール内でのプロシージャ名の重複は許されてない」 「同じブック内であればどのモジュールのプロシージャかを指定すればユニークな指定」 上記何れも満足しているはずなんですが、<「他のマクロ」という名前がかぶっているので >と 書かれてあるのと関係しますか? 【重複】の意味がよくわかんなくなっています… (T20) 2020/08/23(日) 20:47 ---- 同姓同名の山田太郎さん(プロシジャー)が同じ会社(ブック)にいた場合、同一人物ではないので、 管理課(モジュール)の山田太郎さんとか、総務課の山田太郎さんと呼び分けるのと同じで、 同姓同名だからといって、同一人物ではないのでユニークという属性は変わってないです その会社(MS)では、同じ課に配属してはいけない就業規則があるだけです もちろん、一人しかいなければ、管理課とかつけなくてもわかるので、省略できるだけです。 (稲葉) 2020/08/23(日) 22:11 ---- >※ 同一モジュール内でのプロシージャ名の重複は許されてないので、同じブック内であれば > どのモジュールのプロシージャかを指定すればユニークな指定になります。 上記は、その上の「それなりの記述」にかかるものです。 (混乱の元でしたかね。すいません) どのモジュールのプロシージャかを指定すれば(複数モジュールで同じ名前のプロシージャが存在しても)ユニークな指定になるのと同じことです。 ↑ 書き換えてみましたがわかりますか? 〜〜〜〜〜〜〜〜〜〜〜〜 >上記何れも満足しているはず ??? >Call 他のマクロ '←コンパイルエラー ↑にはモジュールの指定がありませんけど。 もしかして 2020/08/22(土) 14:25 のコメントは読み流しましたか? (チオチモリン) 2020/08/23(日) 23:38 ---- ああ、本件の場合 >Call 他のマクロ '←コンパイルエラー は、モジュール名だけでプロシージャの指定がないと解釈された。のかも知れない。 (チオチモリン) 2020/08/23(日) 23:51 ---- 整理して問い直します。 ・同一ブックに複数のモジュールがあります ・存在するプロシジャー名は全て異なります ・今回の「あるマクロ」も「他のマクロ」もそれぞれ別のモジュールに単独で存在します ・今回「他のマクロ」のみモジュール名を【他のマクロ】に変更します この時、『Call 他のマクロ』は何故コンパイルエラーになるのでしょうか? モジュール名が【他のマクロ】でなければどんな名前でもエラーにはならないようなので、 「モジュール名とプロシジャー名が同じ」はNG、と解釈したのですが… (T20) 2020/08/24(月) 11:45 ---- こんにちは --- 標準モジュール Module1 --- Sub test() Call subproc End Sub --- 標準モジュール subproc --- Sub subproc() MsgBox "subproc" End Sub で実行すると、 コンパイルエラー モジュールではなく、変数またはプロシージャを指定してください。 となるので、 >「モジュール名とプロシジャー名が同じ」はNG とういのが正しいでしょうね。 (´・ω・`) 2020/08/24(月) 12:44 ---- モジュール名は "【他のマクロ】" なのか "他のマクロ" なのかどちらでしょう? "【他のマクロ】" なら、call 他のマクロ は通るけど、call 【他のマクロ】.他のマクロ は通らない。 "他のマクロ" なら、プロシジャ名と重なるから call 他のマクロ.他のマクロ としないと通らない。 同じ名前だと、モジュール名なのかプロシジャ名か判らないから明示しないとエラーになる、というだけの事でしょう。 そして、"【】" は、モジュール名には使えるけど、マクロからモジュール名指定すると「不正な文字」とされますね。 統一感はないですが、元々英語のアプリであり、日本語対応は甘いし、先日は日本語マクロがあると全部消される問題があったし、対応が怪しい日本語をモジュール名やプロシジャ名に使わないのが安全と思いますよ。 更に、モジュール名とプロシジャ名を同じにするなんて、コードを読む側を混乱させるだけで、全くメリットのない設計ではないでしょうか?(ちなみに、私の場合はサブプロシジャなら「s」、関数なら「f」を先頭とすることで、変数定義と混同しないようにしてます) (???) 2020/08/24(月) 13:20 ---- あそうか。違いました。 Sub test() Call subproc.subproc End Sub でOKなので、 >「モジュール名とプロシジャー名が同じ」はNG ではないですね。 横入したうえ、見当ちがいのこと書きました。すみません。 (´・ω・`) 2020/08/24(月) 13:32 ---- >同じ名前だと、モジュール名なのかプロシジャ名か判らないから明示しないとエラーになる、というだけの事 これで、みなさんからいただいたコメントに合点がいきました。 理解力不足で申し訳ありませんでした。 日本語マクロの件や、記名に関することもとても参考になりました。 (尚、モジュール名に【】は実際には付けていません、紛らわしくて失礼しました) これからも、よろしくお願いします。 (T20) 2020/08/24(月) 15:49 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202008/20200822102052.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97004 documents and 608062 words.

訪問者:カウンタValid HTML 4.01 Transitional