| すぐマク YNxv9cz622 | Home | Search | Contents | Gallery | Introduction | Service | Support | What's New! |
| コンパイルエラー[変数が定義されていません]と表示されるが? |
|
|
|||||
95ページ [1-1-14図] ◆ 環境・・ Excel 2000 & Windows Me![]() よろしくお願いします。簡単な自動マクロ記録を経験してちょっとだけVBE画面を覗いた程度の者ですが、この講座教本で勉強を始めました。 「組み方講座 SupportのFAQ」のページ95 図1-1-14 タイトル"選択されたファイルを開く" の所と似たケースですが改善できずSTOPしています。 作業進行状況は CディスクMyDocumentsにCD-ROMをコピーして、「リストボックス_検索メニュー」ファイルは 「ときめき」フォルダに格納してあります。 リストボックスは Sheet3に作成し講座に従って進み、ページ99の "操作方法" でエラーが出ました。 リストボックスの行を選択すると "コンパイルエラー--変数が定義されていません" です。OKするとVBE画面の中で "Private Sub 選択されたファイルを開く()" が黄色に網かけになっています。 以下作成したコードですが、改善方法を教えて下さい。
Option Explicit
Dim 行, フォルダ, 親フォルダ, 子フォルダ, ファイル名, 拡張子, パス
Sub 環境リストボックスでクリックされた()
行 = Worksheets("呼出").Cells(2, 1) + 1
管理表シートから値を取り出す
選択されたファイルを開く
End Sub
Private Sub 管理表シートから値を取り出す()
フォルダ = Worksheets("管理表").Cells(行, 2)
親フォルダ = Worksheets("管理表").Cells(行, 3)
子フォルダ = Worksheets("管理表").Cells(行, 4)
ファイル名 = Worksheets("管理表").Cells(行, 5)
拡張子 = Worksheets("管理表").Cells(行, 6)
End Sub
Private Sub 選択されたファイルを開く()
ChDrive ドライブ
パス = ドライブ & ":\" & 親フォルダ & "\" & 子フォルダ
ChDir パス
Workbooks.Open Filename:=ファイル名 & ".xls", ReadOnly:=True
End Sub
|
|
|||
|
拙著「ExcelVBAマクロ組み方講座」をご購読、ありがとうございます。FAQページで類似例も見ていただいたり、一生懸命のご様子、尊敬します。 エラーの原因は、送信いただいた情報ではっきり分かりますので、早速、回答させていただきます。 [コンパイルエラー--変数が定義されていません]というメッセージが表示された場合は、マクロの中で使っている変数の名前が、冒頭で変数を宣言する Option Explicit に続く行の Dim文の中に無いからだと思ってください。 そして、無い名前を使っているのはどこであるかを、黄色の網掛けで教えてくれていると思いましょう。 具体的にいいますと、 2行目 Dim 行, フォルダ, 親フォルダ, 子フォルダ, ファイル名, 拡張子, パス 9行目 フォルダ = Worksheets("管理表").Cells(行, 2) 16行目 ChDrive ドライブ 17行目 パス = ドライブ & ":\" & 親フォルダ & "\" & 子フォルダ の赤字の部分は、本では全部 ドライブ となっていますので、2行目と9行目を修正すれば解消します。 なお、どちらを中心に考えるかですが、もしも、「本を読みながら自分の考えも入れて進みたい」ということで、2行目と9行目に 「フォルダ」という変数名を使ったのであるならば、16行目と17行目を修正することになります。 どうか、「STOP」してしまった学習を再開され、楽しくお進みください。 |
|
|||||
|
早速のご回答有り難う御座います。 2,9行を "ドライブ" に置換え実行しましたが、エラーがでました。 「中断モードでコードを実行することはできません」です。 その場合 "ChDir パス" が黄色の網掛けになり、その上にマウスポインタを置くと "C:\ときめき\環境" とポップアツプヒントが出ますがどうすればよいかわかりません。お願いします。 ちなみにChDir パスに C:\ときめき\環境 を入力してみたけどダメでした。 |
|
|||
|
すでに95ページまで進んでみえて、ここまでは順調にきていたようですのに、一度トラブルと冷静さを失ってはいけません。
エラーメッセージは日本語ですから、素直に解釈してください。 ここからは私の想像ですから違っているかも知れません。 あなたは、ひょっとして、マクロを修正しないままで実行して、エラーで中断したときに 2行目と 9行目を "ドライブ" に修正し、そのまま何もしないで、リストボックスを動作確認しませんでしたか?
そうだとすれば、ここまでに学んだマクロの修正方法とは異なる方法で行ったことになりますね。その場合は[リセット]ボタンをクリックしてから修正する必要があるのですが、不慣れなうちからアレコレ異なる手法を採ると混乱しがちです。 当分は本でお教えしているように、(1)マクロを修正したいブックを開いて、(2)VBE画面にマクロを表示し、(3)本のとおりにきちんと修正して、(4)ブックを上書き保存し、(5)動作確認する という手順で行うようにお勧めします。 なお、18ページの注意にあるとおり、付属CD-ROMの「ときめき」フォルダは、出来得る限り Cドライブの直下(\)にコピーしてください。あなたの判断で本と異なる方法を採られることは自由ですが、改造に係るご質問は有料になる場合がありますので。 さあ、気を取り直して再チャレンジしてみてください。 |
|
|||||
|
度々の質問に丁寧なご回答有難うございます。 やっと理解できました。ページ88からのリストボックスを再度新規作成して、教えられたことを念頭において実行しました。うまくリスト選択で xlsファイルが開きました。 振り返ってみるとコード作成時のパス設定が、管理表の "ドライブの所在場所" にヒントがあつたんですね。 しかし、失敗と問題解決に時間をかけ、先生からの指導で叱咤激励を受けてやったことが理解に結びついたことは言うまでもありません。本当に有難うございました。 |
| http://www.geocities.jp/happy_ngi/ | Home | Contents | Gallery | Introduction | Service | Support | What's New! |