No.2ベストアンサー
- 回答日時:
こんにちは。
Excel VBAマクロの基本的な使い方を間違って覚えたことが原因かもしれませんね。まず、そこを確認させてください。
「会計計算.xls!金利計算.金利計算」
ファイル名!モジュール名(またはシート名).プロシージャ(関数)名
という並びになっています。
モジュール名になる時は、同じプロシージ名のマクロやUDF(ユーザー定義関数)が、別々のモジュールにある時です。
さて、Excel VBAのマクロは、基本的にどこに書くかご存知じですか?
一般的に標準モジュールに書くことが決まりになっています。
あまり細々説明しても、たぶん、わけが分からなくなるでしょうから、他のオブジェクトの話はしません。
>「マクロ名」だけ、すなわち「金利計算」だけの名前
一般のプロシージャの場合は「金利計算」とだけ出るのは、自ブックだけです。
名実ともに、関数のようにどこでも「金利計算」という表示自体を出す、グローバル化は、アドインに変えることですが、それは、また別途質問してください。
WindFaller様 ご丁寧な回答ありがとうございます。
おっしゃるように付け焼刃の状態なので、異常が出ると全く対処できません。
今の画面の状況をご説明します。
・エクセルは2003
・会計計算を開発するにあたり、不定期でバージョンアップしており、現在は「会計計算5.5」です。
したがってPCには「会計計算1.0」から始まり、兄弟が10個ほど存在し、同名のマクロがそれぞれに存在します。
・今は「会計計算5.5」ファイルのみ立ち上がっており、他のマクロは立ち上がっていません。
・会計計算5.5にはマクロが40個ほど存在します。
・マクロは標準モジュールに記載しています。
・プロシージャ名とツール/「マクロ」ダイアグラムボックスには「金利計算」が表示されています。
・プロパティおよびマクロエクスプローラには「A金利計算」が表示されています。
・この状態で「金利計算」をシートに配した四角のオートシェイプに登録すると、「金利計算」が起動します。
・ここでプロパティの「A金利計算」を「金利計算」にすると、「マクロ」ダイアグラムボックスには
「会計計算.xls!金利計算.金利計算」が表示されてしまいます。
・この状態で四角のオートシェイプをたたくと、「金利計算」マクロが起動します。
・したがって実務上では困りませんが、何かがおかしいので、将来問題を起こすことを懸念しています。
これまでのバージョンでは、「会計計算」ファイルを単独で立ち上げている限り、プロシージャ名がどこにも表示されていました。
以上です。もしここがおかしいというのがありましたら、助言をお願いします。
No.5
- 回答日時:
こんにちは。
>残念ながら中身は理解できません。
私も全体は理解していません。ただ、あのコードを研究尽くした人たちがいるということは事実です。しかし、それでも、概形ぐらいしか分かりません。
別カテで、VBAの設計のような話が、ベテランと思われる方の発言がありました。多くの方は、つまり、全体の設計を描いていからだとおっしゃっています。でも、VBAとかいうものは、そういうものではないと思うのです。個人が一人で作るもので、担当の割り振りが決まっているわけではありません。
「いきなり部品図を描き、そのあとAssy図、全体図を描いている」
まったく他人からみたらそのとおりです。
実は、VBAマクロというのは、私の持論で、こうしたものは心臓部から作っていくという方法なのです。心臓が作れないものは、NGなので、どんなに立派な構想があろうとも、何の意味もありません。だから、最初に、心臓部から作り始めるのです。テクニック優先なのです。
例えば、シートで値を検索するのに、ふつうは、Findメソッドを使うと思うのです。そこがあやふやだったり、それを他に置き換えて、コードを構築するというのは、私などからするとありえないと思えるのです。定石と定石外しという言葉がありますが、VBAプログラムなんていうものは、ほとんど定石でやったほうが楽だし、それを独自路線、つまり定石外しなんて試みたところで、素人ではうまくいくわけがないと思います。
>フレーム構築から最後のコーディングに至る手順というものに関して、参考になりそうな書籍なりサイトをご存知でした
それは、「構造化プログラミング」だと思うのです。VBAにそれほど仰々しいものは存在しません。
今は時代が違うとは思っていても、VBAなどは、これを抜きにしては扱えませんね。
放送大学などでも、特別大きく取り上げなくなったもののようです。それでも、Basic 系には不可欠な考え方です。
http://www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/ …
例えば、ここのサイトは、旧VB6 なので、そのものずばりだという感じがします。(内容的には古臭いかもしれませんが、VBAの中で生きています。)
『構造化プログラミングについてまとめ』
•構造化プログラミングはプログラムを書く上での基本的作法である。
•現在の色々なグ技法や手法は全てこの作法の延長線上にある。
•大きなプログラムを書く上で構造化プログラミングは必須である。
•小さいプログラムを書く上でもこの作法は有効
•構造化プログラミングの精神を理解して,構造化プログラム言語を使う
こんな話は、仕事やコーディングには直結しませんが、かなり勉強にはなります。ある程度の長年やっている人は、一度はこんなものを目に通しています。
WindFaller 様 ありがとうございます
早速サイトを見てみました。
断片的にはHow To 本に散見できますが、
「良いプログラマは正しいプログラムを書くだけでなく,それが正しく動作することを,分かりやすく証明する必要がある」
「プログラミングの勉強は単にプログラムを書くためだけでは無く, 物事を深く理解するための一つの道である 」
などは私には含蓄のある言葉だと受け取りました。
プログラムを書いていて、実は自分はその本質を理解していなんだなと思うことがしばしばです。
少し頭を整理する手掛かりがつかめそうです。
大変お世話をおかけしました。
No.4
- 回答日時:
返事を読みました。
どうもありがとうございます。>基本からじっくりと勉強してみたいと思います。
教えてくれる物・人がいればよいのですが、情報が手に入れにくくなっているように感じます。
一通りの文法を終えた人にとって、その後のお手本や基礎的なことを指導してくれるものがないのも問題だと思います。
VBAのテクニックって、どうやって学ぶか、以前はさっぱり見当がつかなかったです。調べてみたら、なんのことはなく、技術自体もVB6のサイズダウンだと知りました。今は、VB6の資料が少ないので、なかなか溝が埋まりません。
>私にとっては高度な内容ですので消化しきれませんが
私の言っている話は、ちょっとしたツールなどの使いこなしから生まれたものです。全体を見れるようなツールがあれば、一目瞭然なのですが、それも、今は手に入りにくくなってしまったし(MZ-Toolsなど)、また、私が作ったユーティリティは、メインテが必要になってくるし、ある程度、VBAProject の仕組みを知っている人なら、たやすく作れるマクロです。
それで、もし一通りの技術をお持ちでしたら、お手本をおすすめします。
今、私たちが、見れる本物のVBAのお手本というと、郵便番号ウィザードのソースは勉強になると思います。
http://excelzipcode7japan.codeplex.com/SourceCon …
生のソースですから、制作過程まで想像できます。これを利用しない手はありません。作った会社は、郵便番号のアドバンス社です。これはお手本になります。私の言った「'」のコメントアウトの事も出てきます。変数の付け方とか。
WindFaller 様 ありがとうございます。
本物のVBAのお手本というのを見ましたが、確かに洗練されているなという雰囲気が分かります。
でも残念ながら中身は理解できません。
これまではいきなりコーディングに入り、そこで悪戦苦闘しておりました。
私はもともと機械設計が専門ですが、このマクロというのも機械設計と同じステップで進めるものかなという気がしてきました。
それに例えると、いきなり部品図を描き、そのあとAssy図、全体図を描いているような感じです。やっていることがまるで逆・・・。
全体構想が全くない状態です。
だから後から見直してみると、自分で書いたものなのにどこに何を書いたのか分からず、それを読み解くのに一苦労しています。
フレーム構築から最後のコーディングに至る手順というものに関して、参考になりそうな書籍なりサイトをご存知でしたら教えていただければありがたいです。
No.3
- 回答日時:
#2の回答者です。
事情は、よく理解しました。
今回は、別の場所にある同じマクロ名が原因です。
今の段階でトラブルをすぐに起こすかと言われたら、それはないでしょうと答えはしますが、管理としては、かなり良くない状態です。今の状況が直接問題を起こすのかとお聞きなったとしたら、それはありません。
(私もVBAを改編はしますが、その管理についても触れておきます。)
>「会計計算1.0」から始まり、兄弟が10個ほど存在し、同名のマクロがそれぞれに存在します。
よほどのことがない限りは、バージョンを上げたら、データは写しても、前のコードなどはお蔵入りさせてしまいます。
>・会計計算5.5にはマクロが40個ほど存在します。
生きているVBAマクロは残しても、使わなくなったものは、捨ててしまったほうがよいのです。VBAマクロには、一定の割り振りした物理的メモリというものがありますが、それは越えられません。
VBAで、一番いけないのは、ワークシートとのセルが紐付になった状態のものです。例えば、関数式がVBE上に置いているとかいうのは、VBA側の設定方法にも影響受けますが、場合によってはワークシート上の状態をVBE側が監視状態になっています。
(VBE-オプション-全般-順次コンパイルはOFF -> ONに直したほうがよいです。 )
メモリーリークはしていないとは思うのですが、一度タスクマネージャーのプロセスなどでExcelが10分とか20分で、何もしていない、または、マクロを一度使う度にメモリが増加していないか調べたほうがよいかもしれません。
いきなり捨てることが出来ない時は、使わないものは、「'」を先頭につけて、コメントアウト状態にしておきます。(私は、いつもそうしていますが、最近は、マクロのバックアップ-Exportをブック[プロジェクト]全体で取るようにしています。)
また、私の場合は、そのブック(プロジェクト)の全体のマクロ名の一覧をボタンが押すとみれるようになっています。
WindFaller 様
ご助言ありがとうございました。
私にとっては高度な内容ですので消化しきれませんが、これを機会に「ただコピペして動けばよし!」という態度を改めて、基本からじっくりと勉強してみたいと思います。
これまでテキストを読んだりしていますが、内容が分からず頓挫しておりました。でも見よう見まねでやっているうちに概念が少し頭に描けるようになりましたので、内容が理解できるのではないかと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/08 11:02
- Visual Basic(VBA) エクセルのマクロについて教えてください。 5 2023/06/02 08:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/16 14:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/15 16:33
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/03/31 12:46
このQ&Aを見た人はこんなQ&Aも見ています
-
見学に行くとしたら【天国】と【地獄】どっち?
みなさんは、一度だけ見学に行けるとしたら【天国】と【地獄】どちらに行きたいですか? 理由も聞きたいです。
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
【お題】逆襲の桃太郎
【大喜利】桃太郎が1回鬼退治に失敗したところから始まる新作昔話「リベンジオブ桃太郎」にはこんなシーンがある
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
今から楽しみな予定はありますか?
いよいよ2025年が始まりました。皆さんには、今から楽しみにしている予定はありますか?
-
EXCELのボタンによるマクロの登録名にファイル名が入ってしまう
PowerPoint(パワーポイント)
-
エクセル マクロでマクロ名が変わってしまってエラーになります
Excel(エクセル)
-
Excelマクロ ファイル名が変わるとエラーになる
Excel(エクセル)
-
-
4
VBA マクロ名のパスをとるには
Excel(エクセル)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
マクロについて教えてください。 ファイル名を変更すると、デバックエラー
Word(ワード)
-
7
【ExcelVBA】マクロの入ったシートをコピーしても新しいシート内でマクロを動作させるには?
Excel(エクセル)
-
8
コピーしたファイルのマクロを実行すると前のファイルが開く
Access(アクセス)
-
9
マクロの保存先、開いてるすべてのブックの意味 エクセルを開き、表示→マクロ→マクロの表示と順番に開く
Excel(エクセル)
-
10
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
15
Excel マクロの編集がグレーになって 編集ができなくなりました
Excel(エクセル)
-
16
特定のPCだけ動作しないVBAマクロがあります。その理由は?
Visual Basic(VBA)
-
17
エクセル ボタンに設定したマクロごとボタンをコピー
Excel(エクセル)
-
18
エクセル イベントマクロ Changeイベントを複数作りたい
Access(アクセス)
-
19
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
20
ファイル名変更後も、マクロを動作させたいのですが?
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【選手権お題その3】この画像で一言【大喜利】
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・ちょっと先の未来クイズ第6問
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
-
複数のマクロボタンをまとめて...
-
エクセル マクロ名にブック名...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの表を複数枚印刷した...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルマクロで、別のブック...
-
エクセルの、記録を終了したマ...
-
エクセル ボタンを押すと色が変...
-
Excel:マクロを消す方法教えて...
-
別シートのマクロボタンをマク...
-
なぜマクロの記録がなくなって...
-
マクロ実行ボタンを自動削除したい
-
Excelマクロをバックグラウンド...
-
エクセルで明日の日付を表示す...
-
LDPlayerのマクロの編集方法を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
エクセル ボタンに設定したマク...
-
複数のマクロボタンをまとめて...
-
Excelのマクロでボタンを押すと...
-
エクセルで、「いいね」のよう...
-
エクセル マクロ名にブック名...
-
LDPlayerのマクロの編集方法を...
-
エクセルマクロで、別のブック...
-
エクセルの、記録を終了したマ...
-
エクセルでマクロ(Excel 4.0)...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの表を複数枚印刷した...
-
別シートのマクロボタンをマク...
-
マクロをマクロを使ってコピー...
-
Ctrl+Zが使えない
-
なぜマクロの記録がなくなって...
-
Excelのマクロ名の並び順の法則...
-
リーグ戦(10チーム2コート)作...
-
(Excel VBA)シートコピー時マ...
おすすめ情報