
プロシージャ名を取得できないかなと考えています。
・Form_Openプロシージャ内で「Form_Open」という文字を取得
・フォーム上に「新規登録」というボタンを作成、クリックした時にできる「新規登録_Click」プロシージャ内で「新規登録_Click」という文字を取得
不可能な場合、各プロシージャに「Form_Open」や「新規登録_Click」をベタ書きしようと考えていますが、非効率と考え、やりたくありません。
できればバージョンは2000以降で、ExcelでもAccessでも構いません。
可能かどうかだけでも教えてください。
No.1ベストアンサー
- 回答日時:
>不可能な場合、各プロシージャに「Form_Open」や「新規登録_Click」をベタ書きしようと考えていますが
何がしたいのか全く解りませんが、”プロシージャ名取得”の関連情報のリンクだけ紹介しておきます。
http://oshiete1.goo.ne.jp/qa1219426.html
http://park7.wakwak.com/cgi-bin/sbox/~efc21/exqa …
http://www.officetanaka.net/excel/vba/vbe/05.htm
http://support.microsoft.com/kb/410621/ja
http://search.goo.ne.jp/web.jsp?dummy=%F3%FE%F3% …
No.3
- 回答日時:
こんにちは。
>できればバージョンは2000以降で、ExcelでもAccessでも構いません。
最初に、もし、マクロを作成しようとするなら、アプリケーションは決めてください。内容的にみて、設計のあやふやなものは、回答しにくいです。Excelは、Excel VBAで、Access はAccess VBAのスタイルがあります。共有する部分はあっても、スタイルが違います。
ハンドル名から、VBAをjobにしているなら、素人の方だとは思いませんが、タスク(仕事)と、その作業過程の、主と従は混同しないほうがよいです。その過程の内容を限定して、可能かどうかと聞かれても、経験の多少に関わらず、ご自身でさえ見通しの立てられないものは、掲示板で聞いても、ほぼ無理と考えたほうがよいです。
今回は、Yes ともNoとも回答できません。
編集のテクニックなのか、マクロ作業中なのか、その区分けすら分かりません。
>・Form_Openプロシージャ内で「Form_Open」という文字を取得
>・フォーム上に「新規登録」というボタンを作成、クリックした時にできる「新規登録_Click」プロシージャ内で「新規登録_Click」という文字を取得
実際に、実行中のプロシージャ名を取るのは、VB.Net にはありますが、VB6系では用意されていません。少なくとも私は知りません。コードの中にあらかじめ書いておくしかありません。そんなに手間でもないと思います。
'例:
MsgBox "Run on procedure CommandButton1_Click of Form UserForm1"
しかし、このようなスタイルが成立するのは、On Error Goto ErrorHandler で、エラーが起きたときだけです。
稼働中のコントロール名を取得するなら、こうなります。
MsgBox ActiveControl.Name
こちらは、実行後にコントロールのプロパティを変更する場合に使用します。
この辺りは、どこまでできているのでしょう。
『「新規登録_Click」をベタ書き』というのは、それぞれのコードに書き入れたくないということでしょうか。何に対して非効率なのか、いまひとつ、共感が沸きません。たとえば、まさかコピー&ペーストが面倒だということでもないと思います。
どういう状況でなぜ必要なのかとか、そういう説明がありません。Error 発生の際のどこから発生しているか、それを提示する以外には、プロシージャ名を取るのはあまり意味がありません。
大事なことは、最終的に、何をしたいかなのです。
No.2
- 回答日時:
Excelの場合
workbookに含まれるVBのコードを扱うには次のObjectを使用します
ActiveWorkbook.VBProject.VBComponents
メソッドやプロパティは自分で調べてください。
私はVBのコードをテキストに吐き出して分析するために以下のようなコードを書きました。(一部ですが)
For Each vbo In ActiveWorkbook.VBProject.VBComponents
If (vbo.Type = 1 Or vbo.Type = 2) And vbo.Name <> "VBE" Then
i = i + 1
モジュール名(i) = vbo.Name
vbo.Export filename:=tempパス & モジュール名(i) & ".bas"
End If
Next
VBAのコードを書き換えることがVBAでできるかどうかはわかりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- その他(ニュース・時事問題) マイナポイントについて質問です。 ①カードの新規取得したときと、健康保険証としての利用申込みしたとき 1 2022/08/26 20:51
- その他(ニュース・社会制度・災害) マイナポイントについて質問です。 ①カードの新規取得したときと、健康保険証としての利用申込みしたとき 1 2022/08/26 21:00
- YouTube 以前に,チャンネルを YouTube の削除を受けていても・・・。 1 2023/06/17 01:57
- OCNモバイルONE MNP取得後、新規契約前に解約をしたらMNPは有効のままですか? 6 2022/06/30 21:18
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
- その他(IT・Webサービス) この規制の正体 2 2022/09/15 08:01
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
このQ&Aを見た人はこんなQ&Aも見ています
-
プロシージャ名の取得
Visual Basic(VBA)
-
【VBA-AC2000】カレントプロシージャ名を取得したい
Visual Basic(VBA)
-
Excel VBA 定義されたプロージャ名、関数名の取得
Visual Basic(VBA)
-
-
4
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
5
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
6
エクセルVBAでプロシージャ名を取得したい
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
VBAのエラー発生場所をメッセージBOXに表示
Visual Basic(VBA)
-
10
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
11
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
12
Access サブフォームでの選択行の取得
その他(データベース)
-
13
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
14
プロシージャを呼び出したプロシージャ名を知る方法は?
Visual Basic(VBA)
-
15
Accessの画面更新を一時的に停止する方法。
その他(データベース)
-
16
どこにもフォーカスを当てたくない
Access(アクセス)
-
17
テキストボックスのvalueとtextの違い
Visual Basic(VBA)
-
18
コンボボックスの開いたリストを閉じるには
Access(アクセス)
-
19
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
20
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
エクセルVBAでUserFormを起動し...
-
Access VBAで行ラベルが定義さ...
-
ACCESS2007インポート時の空白...
-
callで順に実行されるプロシー...
-
excel/vba/public変数
-
VBA プロシージャの名前の取得
-
OutlookVBAで作成したマクロに...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
Excel:ThisWorkbookオブジェク...
-
【Excel VBA】 WorksheetやRa...
-
アクセス 意図せずサブプロシー...
-
VBA 「文字が入っていたら、...
-
フォームモジュール イベント...
-
Accessでグローバル変数を宣言...
-
ACCESS マクロをモジュールに変...
-
Statement ignored というエラー
-
ODBCリンクの際にACCESSでは読...
-
SQLで部分的にGROUP BYしたいとき
-
キャッシュを使わずにSELECTを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessのマクロでモジュールを...
-
Access VBAで行ラベルが定義さ...
-
エクセルVBAでUserFormを起動し...
-
callで順に実行されるプロシー...
-
【Excel VBA】 WorksheetやRa...
-
Excel VBAで「プログラム実行」...
-
或るプロシージャの呼び出し元判定
-
OutlookVBAで作成したマクロに...
-
VBA プロシージャの名前の取得
-
Accessでグローバル変数を宣言...
-
DBMS_OUTPUT.PUT_LINEを実行し...
-
excel/vba/public変数
-
エクセルVBAが対応できるプログ...
-
Excel:ThisWorkbookオブジェク...
-
ACCESS マクロをモジュールに変...
-
ACCESS2007インポート時の空白...
-
ブックオープン時にテキストボ...
-
PL/SQLのエラーについて
-
sp_executesqlを実行してもテー...
-
ExcelVBAでしりとりのやり方を...
おすすめ情報