こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ExcelVBA ユーザーフォームのコードがない

いつもお世話になっています。
Excel vbaで質問させてください。

あるExcelブック(test.xlsとします)を開くと、ユーザーフォーム(と思う)が表示されます。
(この時、Excelアプリケーションは「表示」されていてモーダルの状態です)
ユーザーフォームで日付を選び、「これでOK」ボタンをクリックすると
新規ブックとして「text_0614.xls」が出来て、これが表示ブックとなります。
(元のtest.xlsは閉じられています)

vbaコードの修正がしたくて、VBEから作業しようとしたところ
ユーザーフォームモジュールも、標準モジュールも何も見当たりません。
Thisworkbookのイベントも何も書いてありません。

プロジェクトにパスワードがかかっているのかと思いましたが、もしそうだとしても
プロジェクトウィンドウに、「フォーム」というフォルダは表示されると思いますし、
また、ダブルクリックしてもパスワードを求められることがありませんので
パスワードがかかっているようには見えません。

これはExcelVBAのユーザーフォームじゃないのでしょうか?(VB?)
または、もし、この「フォーム」フォルダごと、ユーザーに見せないやり方があるのでしょうか?

どなたかご存知の方いらっしゃいましたらご教示ください!
WinXP SP3 Excel2003 SP3 使用です。
どうぞよろしくお願いします。

投稿日時 - 2011-06-14 13:57:03

QNo.6808822

困ってます

質問者が選んだベストアンサー

>>新規ブックとして「text_0614.xls」が出来て、これが表示ブックとなります。
(元のtest.xlsは閉じられています)<<

本当にそうなら、新規ブックに名前がついているだけだから
それを開いたってコードがあるはずはありません。

*作者がコードの編集をされたくなくてそうしているブックなのでは?

投稿日時 - 2011-06-14 15:14:34

補足

早速回答くださりありがとうございます!
コードが見当たらないのは、もとのtest.xlsの方なのです・・。

新しく表示された「text_0614.xls」は元のtest.xlsと同じ
シート内容となっていまして、多分、test.xlsから
Saveasで名前を付けて保存されたものえはないかと思っています。
また、保存先は「201106」というフォルダになり、
このフォルダは存在しなければ自動生成されますので、
やはりtest.xlsに何らかのMkDirによる指示があるものではないか?
と思うのですが・・・。

投稿日時 - 2011-06-14 15:38:43

お礼

すみません、補足の補足、の入れ方が分からなかったので
こちらに入力させて頂きますね。
”新規ブックとして「text_0614.xls」が出来て”
と書いてしまいましたが、新規ブックとは違いますね、
分かりづらい表現をしてしまい、大変失礼しました!

投稿日時 - 2011-06-14 15:42:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(5)

ANo.5

あまりに基本過ぎて誰も指摘しなかったという顛末になりそうですが,「ないない」って一体どこを探していたんですか?という事ですね。

マクロを持っているのはtest.xlsですから,当然ながら添付図のようにそいつを開いて確認しないとイミナイです。
で,プロジェクトがロックされていてパスワード入れないと開かないなら,それで決まりですね。
やっぱりtext_0614.xlsにマクロがないから無い無い言ってたって事ですか?

投稿日時 - 2011-06-14 19:12:39

補足

よく考えてみましたらそのようでした・・・すみません。
text_0614.xlsが開いている時は、test.xlsは閉じていますので
添付してくださった図で言えば赤枠線内は無い状態です。
バカな質問にお付き合いくださり、本当にありがとうございました。
お騒がせして申し訳ありませんでした・・・。

投稿日時 - 2011-06-15 09:09:28

お礼

環境をつくり、図まで添付してくださりありがとうございました。

投稿日時 - 2011-06-15 09:10:05

ANo.4

ひょっとしてダイアローグシートじゃないですか?
標準モジュールで

MsgBox DialogSheets(1).Name

を実行したら何と出ますか?

投稿日時 - 2011-06-14 16:00:34

補足

回答をどうもありがとうございます。
ANo.3さんのところにも書かせて頂きましたが
ただ単にパスワードでロックされていただけかもしれません・・・。

モジュールがロックされているので
回答いただいたダイアログシートのNameは実行できませんでした・・・。
お騒がせして申し訳ありません!

投稿日時 - 2011-06-14 16:43:05

お礼

色々と考えてくださりありがとうございました!
ダイアログシートというのは初めて聞きました。
そういったものがあるのかと勉強になりました。
自分でも調べてみます。

投稿日時 - 2011-06-15 09:11:14

ANo.3

それでは,なんとなくですが(失礼な意見でゴメンナサイ)やっぱり違う場所(たとえば間違ったProjectの中)を探してたりするんじゃないかな?という気もします。

test.xlsを起動してから一連のマクロが実行中に,ESCキーを乱打して(あるいは押しっぱなしにして)上手い具合にマクロ実行中にブレイク出来ないか,やってみたらどうでしょう。フォームが出る瞬間,或いは消える瞬間が狙い目かも知れません。
実行中のマクロを中断できれば,そこからデバッグしてそれがどこにあるのか何に含まれているのかも見ることが出来ます。


#まぁESCを効かなくされていたらダメですが。

投稿日時 - 2011-06-14 15:54:33

補足

何度もありがとうございます。
なんだか自分が勘違いしているような気がしてきました・・・。

皆さんに色々考えていただいたのに申し訳ありません・・・。
新しいブックを作成する時にシートをコピーして作成することも可能ですし
DreamyCatさんの言うとおり、「test_0614.xls」が作成される時に
コードは持ってきてないのかもしれません。

と言うのはtest.xlsで表示されるユーザーフォームを、閉じるボタンで
閉じてみたところ、プロジェクトパスワードが求められました(><)
ただ単にパスワードでロックされていただけって事でしょうか!

投稿日時 - 2011-06-14 16:40:46

ANo.1

それが古いブック(アプリケーション)だった場合。

もしかすると5.0ダイアログと4.0マクロの組み合わせかも?しれませんね。
試しに書式メニューのシートの再表示で,何やら隠れていないか探ってみてください。

投稿日時 - 2011-06-14 14:33:14

補足

早速回答ありがとうございます!
Excel側で、シートの再表示メニューはグレーアウトしています・・・。
念のため、標準モジュールで以下を試してみましたが
あらたに表示されたシートはありませんでした・・・(´`)
For Each sh In Sheets
sh.Visible = True
Next sh
5.0ダイアログと4.0マクロなどは、シートに記述するのですか?
古いマクロは全く知識がなく見方さえもわからないので・・・。

投稿日時 - 2011-06-14 14:57:14

あなたにオススメの質問