- ベストアンサー
エクセル(VBE)について
コードウィンドウにてThisWorkbookにマクロをはりつけして その次シート1をクリックしてら別の画面になって続けて入力してみましたが最後にエラー表示がでてしまいました。シート1のセルF9(終了)から終了できるようにしたいのですが、
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
『QNo.187139 エクセルについて(セルから終了にする)』 の続きですか? そうだとすると、どのような操作をした時にエラーが起きるかよく分かりませんが・・・ 今回の質問は、『シート1のセルF9』と特定されているので、エラー回避を込みで書き換えてみました。 シート1(VBE画面のプロジェクトエクスプローラのSheet1)のコードウインドウに貼り付けます。 貼り付けた後、シートに戻って、『シート1のセルF9』をクリックする前に、『名前を付けて保存』で一旦保存して下さい。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error GoTo ErrorHandler 'エラー対応 If Target.Address = "$F$9" Then '保存・終了の確認 If MsgBox("保存して終了します。", vbOKCancel, "確認") = vbCancel Then 'キャンセルなので保存・終了はしない Exit Sub Else '保存・終了を行う時にメッセージを出さないようにする ActiveWorkbook.Saved = True 'Bookを保存 ActiveWorkbook.Save 'Excelを終了 Application.Quit End If End If Exit Sub ErrorHandler: End Sub
その他の回答 (2)
- nishi6
- ベストアンサー率67% (869/1280)
>If MegBoxのMegのところに・・・ If MsgBox ではないですか? 入力間違いでしょうか。 回答をコピーして貼り付ければ、スペルミスはなくなると思いますが。 コードウインドウの最初に Option Explicit と入力して『変数の宣言を強制する』ことにすればスペルミスが事前に分かります。ツール→オプション→編集の変数の宣言を強制するにチェックを入れておけば最初から Option Explicit が書きこまれます。
補足
あけましておめでとうございます。まだ、出来上がっていません。なんとかできてるみたいなのですが、表紙(sheet1)の”保存をして終了”セルをクリックしてもコントロールパネルに戻りません、方法がありますか? すいませんいつまでも・・・
- nishi6
- ベストアンサー率67% (869/1280)
実際動かしても何もエラーはでませんが・・・ >ひたすら入力が終わって・・・ 回答を入力されたんですかね。入力ミスがあるかも知れないので、回答の Private Sub から End Sub までをマウスで選択して、右クリックしてコピー、それをSheet1のコードウインドウに貼り付けてみてください。 >エラー内容は”コンパイルエラープロシージャの外では無効です”と出てきます。 Private Sub から End Sub や Sub から End Sub 以外の場所に、例えば『A = 1』のような式が入力されていませんか。 >End Ifからのづれて入力してあるのは意味がありますか ズレは見やすくするためですが、コードは全て必要です。 何かあれば補足してください。
お礼
ありがとうございます。が!まだ出来ませ~ん(’~’)。 セルをクリックしても終わらないし、Sheet1コード[Weekbook]のPrivateのところに黄色のラインがはいっていて If MegBoxのMegのところに青いラインがあるのですが すいません、忙しいのに教えてください。
補足
ありがとうです。(^ー^)。 もう一度,確認してみます。入力終了後どうすればいいですか?そのままエクセルを保存でいいですか?
補足
よかった~。また教えてもらって・・ 実は、エクセルで数枚のシートを作成して、作業の最後にシート1(表紙)に戻ってきてセル(終了)をクリックしてウィンドウズの画面になる様に作成したいのですが、終了と同時に保存ができれば・・・複数のシートをシート1に戻ってくるように作成できましたが、その先が出来ないのです。 今回、トライしてみたのですが、ひたすら入力が終わって確認のため教えてgooでを開いたらバッシと画面が真っ暗電源が切れました。何度立ち上げても切れてしまい、一晩寝かしたら起動しましたが、作成したファイルはエラーが出てます。 エラー内容は”コンパイルエラープロシージャの外では無効です”と出てきます。 それと、End Ifからのづれて入力してあるのは意味がありますか? sena3はそのまま、そろえ入力してしまいました。