[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ファイルを開いた時』(hiro)
マクロでファイルを開いた時にマクロを有効にしていないと
メッセージの書かれたシートが開いて作業ができないようになってます
下記?@と?Aの不具合が生じました
?@メッセージ付きのシートが開くがメッセージが入力されている
セル以外が表示され、メッセージが見えない
?Aメッセージが付きのシートが開かない
マクロは始めてです
どうしたら直せるのか分かりません
助けてくれませんか?
マクロが有効でない時にメッセージを表示するのはこのマクロでしょうか?
↓
Private Sub Workbook_Open()
Sheets("あ).Visible = xlSheetVisible Sheets("sheet1").Visible = xlSheetHidden End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
多分途中で上書き保存したのでしょうか。 マクロが有効でない時にマクロで○○をするというのは一切出来ません。 マクロが有効でない時というのは、前回保存した状態を表示しているだけです。 マクロが有効でない時に表示したい状態にしてから上書き保存してください。 (cai) 2022/02/14(月) 16:25
いずれにせよ、マクロを研究するには【ステップ実行】という方法を使うと便利ですよ。
※ Workbook_Openなどのイベントに絡むものであっても、ブレークポイント(Stopステートメントによる代用含む)を 設定することによりステップ実行することは可能です。
■2
質問とは関係ありませんが、この掲示板では丸付き数字などの環境依存文字を使うと文字化けすることがあるので避けたほうが無難だとおもいます。
■3
今回のケースでいえば、非常にシンプルな構成ですから何をしているのかわからない命令を調べてみるのもよいでしょう。
https://www.moug.net/tech/exvba/0040053.html
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.visible
https://docs.microsoft.com/ja-jp/office/vba/api/excel.xlsheetvisibility
■4
ステップ実行すればわかるとおもいますが、マクロを有効にした場合、
(1)ブックを開いたことをきっかけにしてマクロが発動 (2)「あ」シートを表示にする (3)「Sheet1」シート非表示にする
ということをしています。
すなわち、提示のマクロではシートの表示、非表示しか操作してませんから、保存したときに関係ないシートをアクティブにしていたり、全然別のセルを表示させておいたりしたら仰るようなことになるとおもいます。
※なので普通は、保存時に「Sheet1」を表示に戻してアクティブシートにして、 「あ」シートを非表示にするようなマクロとセットで運用していると思います。
とりあえず、今すぐ何とかするだけなら、手作業で↓をしてから保存すれば次からは戻りますよ。
(1)「Sheet1」シート表示してアクティブにしたうえで、メッセージのあるセルまでカーソルを移動させておく(見えるようにしておく) (2)「あ」シートを非表示にする
■余談
投稿するときのタイプミスだとはおもいますが↓ですよね。
誤 Sheets("あ) 正 Sheets("あ")
(もこな2) 2022/02/14(月) 16:37
>よくお見掛けする(hiro)さんとは別の方でしょうか?
こちらのサイト昨日教えてもらったばかりで投稿は始めてです
同じニックネームの方がいらしたのですね
紛らわしくすいません、次回からひらがなにしようと思います
>質問とは関係ありませんが、この掲示板では丸付き数字などの環境依存文字を使うと文字化けすることがある>ので避けたほうが無難だとおもいます。
教えてくれてありがとうございます
正しくは
下記1と2の不具合が生じました
1メッセージ付きのシートが開くがメッセージが入力されている
セル以外が表示され、メッセージが見えない
2メッセージが付きのシートが開かない
>すなわち、提示のマクロではシートの表示、非表示しか操作してませんから、保存したときに関係ないシー>トをアクティブにしていたり、全然別のセルを表示させておいたりしたら仰るようなことになるとおもいま>す。
マクロ付きのファイルを各担当者が使用し、私がそれを日々集計してます
担当者に確認しましたが覚えていないとのことです
ファイルに表示されているシートは1つ(sheet1)しかありません
たぶん、
(1)ブックを開いたことをきっかけにしてマクロが発動
(2)「あ」シートを表示にする(「あ」にコンテンツを有効にすることを警告するメッセージ) (3)「Sheet1」シート非表示にする(「sheet1」に入力すると別のマクロが発動) となっているのではと思ってます 今回の不具合は、 (1)の時にマクロが発動せず、sheet1の入力ができる(コンテンツを有効にしていないので入力時のマクロが発動しない) (2)「あ」シートのメッセージが表示されない(メッセージが入力されていない行が表示される)
(1)と(2)が正常に動く方法を教えてくれませんか?
「あ」シートはないのでどうやってメッセージのあるセルまで動かすかわかりません
>投稿するときのタイプミスだとはおもいますが↓ですよね。
タイプミスです
教えてくれてありがとうございます
(hiro) 2022/02/15(火) 09:15
「Private Sub Workbook_Open()」のほかに、
「Private Sub Workbook_BeforeClose(Cancel As Boolean)」があると思われますので、
提示してみて下さい。
(わからん) 2022/02/15(火) 10:37
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("sheet1").Visible = xlSheetVisible Sheets("あ").Visible = xlSheetVeryHidden End Sub
少し勘違いしてました
ファイルに表示されているシートはsheet1じゃなくて、「あ」シートしかありません
但し、ブックを開いて表示されるシートがメッセージシートで
コンテンツを有効にすると「あ」シートが開き、メッセージシートは表示されなくなります
(hiro) 2022/02/15(火) 11:34
>メッセージが入力されているセル以外が表示され Range.Show メソッド Application.Goto メソッド などでメッセージが入力されているセルに移動させる? (どん) 2022/02/15(火) 12:12
なぜなら、閉じる前に必ず実行して上書き保存
普通の上書き保存時にも必ず実行しなければならないから・・・。
(手本) 2022/02/15(火) 12:17
ごもっともです。
それを考慮すると、こんな感じでしょうか。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Range("A1").Select
Worksheets("あ").Visible = xlVeryHidden End Sub
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
Worksheets("あ").Visible = True Worksheets("あ").Activate
Worksheets("Sheet1").Visible = False End Sub
(わからん) 2022/02/15(火) 13:20
わからんさん
教えてくれたコードで実行すると「あ」シートが表示されないです
しかもエラーが出ます
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Worksheets("Sheet1").Visible = True Worksheets("Sheet1").Activate Range("A1").Select Worksheets("あ").Visible = xlVeryHidden ←ここで実行時エラー9
1.マクロが無効の場合、sheet1のみ表示
↓
2.マクロが有効の場合、「あ」シートのみ表示
(hiro) 2022/02/15(火) 14:48
シートがないときに出るエラーですか...
とりあえず、こちらに変更して下さい。
Sheets("あ").Visible = xlSheetVeryHidden
(わからん) 2022/02/15(火) 17:24
(hiro) 2022/02/17(木) 12:45
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.