エクセル2000です。
腑に落ちない現象が起きているので質問させてください。
Sheet1にテキストボックス(OLEオブジェクトのTextboxではありません)とボタンが貼ってあり、Visble=Falseで非表示にしています。それを保存する際には表示させたいので、BeforeSaveイベントで
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheet1.TextBoxes("テキスト").Visible = True
Sheet1.Buttons("ボタン").Visible = True
MsgBox "保存されちゃった!"
End Sub
と書いてみました。
手動で保存する場合には正しく、テクストボックスやボタンは正しく表示されます。もちろんMsgboxも出ます。
ところが、標準モジュールに書いた以下のコード、
Sub 保存()
ActiveWorkbook.Save
End Sub
を走らせてみても、"保存されちゃった!"と、Msgboxは出ますが、肝心のテクストボックスやボタンが表示されません。
試行錯誤の結果、
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheet1.Shapes("テキスト").Visible = True
Sheet1.Shapes("ボタン").Visible = True
MsgBox "保存されちゃった!"
End Sub
と書くと、標準モジュールから、ActiveWorkbook.Saveでも表示されることがわかりました。
どうしてでしょうか?
No.1ベストアンサー
- 回答日時:
>を走らせてみても、"保存されちゃった!"と、Msgboxは出ますが、肝心のテクストボックスやボタンが表示されません。
ユーザー関数を抜けて「シートが待ち状態になるまで」は、シート上の子コントロールのVisibleプロパティの変化は反映されません。
ところが「セーブしちゃうと、Visibleプロパティが変化したのを忘れてしまう」ので「Sub 保存()を抜け、Visibleプロパティの変化が反映されるタイミング」には、もう「Visibleプロパティが変化したのを忘れている」のです。
つまり、Sub 保存()を抜けるまで、Visibleプロパティを変化させても反映されません。
しかし、ShapesのVisibleプロパティは「見た目だけを即座に画面に反映する」ので、Visibleプロパティを変更した瞬間に画面に反映されます(但し、反映されるのは「見た目だけ」なので、そのコントロールがクリック可能とは限りません)
chie65536さま、有難うございます。
そうですか、セーブしちゃうと、Visibleプロパティが変化したのを忘れてしまうのですか。
う~ん、なんとなくわかったような・・・・。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) EXCELのセル相互同期用のVBAでの不具合 3 2022/08/10 11:44
- Visual Basic(VBA) VBA Bookの表示、非表示 1 2022/09/16 20:44
- Visual Basic(VBA) Excel VBAでの右クリックのポップアップメニューの非表示方法は? 1 2023/04/12 17:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleマップに保存した地点が...
-
ITパスポートの一環で質問です...
-
「指定されたパスのアクセス許...
-
PDFファイルの倍率を変えて保存...
-
ニコニコ動画保存について
-
エクセル2010 保存できない
-
ポケナビGPSのデータを地図ソフ...
-
WORD2000 行間を狭くしたので...
-
サポートされたファイル形式お...
-
SH-02 着うたを作成したい
-
ガラケーからPCへの写真の取り込み
-
【VBA】マクロの入ったファイル...
-
e-taxで送信ファイルの拡張子が...
-
A4の紙に印刷されている文字を...
-
個別に違う添付ファイルを付け...
-
Access2016のExcelインポートの...
-
PC内で速度を遅くした音源をCD...
-
クリッカブルマップ(イメージ...
-
stdio.hの中身
-
WebBrowserにHTMLテキストを読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDFファイルの倍率を変えて保存...
-
Googleマップに保存した地点が...
-
ITパスポートの一環で質問です...
-
至急エクセルで最小限の保存が...
-
過去の写真や動画の長期保存(...
-
プリントスクリーンで保存した...
-
Windows Live Mailで下書き保存...
-
Vistaのエクスペリエンスインデ...
-
alert で文字の色を変えたい
-
ムービーメーカー 動画が小さ...
-
エクセル2010 保存できない
-
小計の列が「0」の行は非表示で...
-
USBメモリとSSDのデータの保存...
-
ムービーメーカーの動画保存に...
-
ExcelのVLOOKUP不具合
-
パワーポイント2007で上書...
-
エクセルのフィルター後の並び...
-
ウエブ魚拓の使用方法について
-
防犯カメラの録画保存日数は
-
エクセル2010 右上の×で保存で...
おすすめ情報