No.5ベストアンサー
- 回答日時:
> やろうとしている、「Workbook_BeforeSaveで、Cancel=True」は、
> もともと前任者入れていたマクロなので、保存する方法があるはず
> なんでしょうけど・・・
以下の手順なんていかがでしょうか。
1. Cancel=Falseと書いておいて、そこにブレークポイントを設定する
2. 保存操作をすると、Cancel=Falseで一時停止する
3. F8キーを一度押す
4. Cancel=FalseをCancel=Trueに書き換え、ブレークポイントを解除する
5. F5キーを押して、保存操作を継続する
No.9
- 回答日時:
>保存して開くとプロテクトがかかってない状態に戻ります。
はて?...
冒頭に書いたように
>'ThisWorkbookModule
>Option Explicit
ThisWorkbookモジュールに提示のコードを置けば、
マクロ無効で開いたり、Application.EnableEventsでイベントを制御しない限り、
Workbook_Openイベント、つまりBookを開くイベントで設定されます。
再度確認してみてください。
それとも
>EXCELファイル作成をVisual Basic6.0でやってるんで、
これが関係してるのですかね?
その場合、詳細不明なので追加アドバイスできないですよ?
ありがとうございます。
お礼が遅くなってごめんなさい。
VB6にて設定したため、保存できないのかもしれません。
マクロに入れてみます。
No.8
- 回答日時:
本題とハズれますが
>「シートの保護」「ブックの保護」をすると、フィルタが使えなくなっちゃうんです。
Excel2002以降はAutoFilter使用を許可できますから、2000が混在しているのですね?
その場合、以下のような感じでAutoFilterを許可してシート保護をかけます。
'ThisWorkbookModule
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
'追加したControlを削除
Application.CommandBars("Cell").Controls("AutoFilter").Delete
On Error GoTo 0
End Sub
'-------------------------------------------------
Private Sub Workbook_Open()
'セル右クリックメニューに"aFilter"追加
With Application.CommandBars("Cell") _
.Controls.Add(Type:=msoControlButton, _
Before:=1, _
Temporary:=True)
.Caption = "AutoFilter"
.OnAction = "ThisWorkbook.aFilter"
End With
'[EnableAutoFilter]プロパティとProtect引数[UserInterfaceOnly]を設定 _
各シートごとに必要
With Sheets("sheet1")
.Unprotect
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True
End With
End Sub
'-------------------------------------------------
Private Sub aFilter()
On Error Resume Next
Selection.AutoFilter
On Error GoTo 0
End Sub
参考まで。
#マクロ無効化対策の必要があれば、以下のページを参考にすると良いかもしれません。
http://homepage2.nifty.com/kmado/kvba.htm
(ここの E00M090 [マクロを無効にする]で開くと使えないxlsファイル )
end-uさん、ありがとうございます!
すみません、言い忘れました。
EXCEL2000で使用する場合もあります。
やってみました。
.EnableAutoFilter = True
.Protect UserInterfaceOnly:=True
の状態でバッチリなんですが、保存して開くとプロテクトがかかってない状態に戻ります。
この状態を保存することはできないんでしょうね。
No.7
- 回答日時:
気になったのですが、マクロで保存できないようにした場合、マクロを無効にして開いてしまえば改ざんし放題になってしまいます。
前任者もおそらくマクロ無効の状態で「Workbook_BeforeSaveで、Cancel=True」のコードを書いて保存したのではないでしょうか。
改ざんを絶対に許さないならフィルタを諦めてPDFで配布する方がよろしいかと。
うっかり上書きを防ぎたいと言う程度でしたら、ファイルのプロパティを読み取り専用にするだけで十分ではないでしょうか。
ぐう~
EXCELのフィルタ機能さえいらなければ、PDFが一番でしょうね。
読み取り専用にはしてるので、このままでいいことにしよっかな?
No.4
- 回答日時:
補足です。
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
If Date > #11/5/2008# Or Time > #11:15:00 AM# Then
Cancel = True
End If
End Sub
のように時間もIF式に組み込めば、どちらかが一致した場合に保存を強制キャンセルするので、今日の指定時間以降、または明日以降は保存を禁止できるようになります。
No.2
- 回答日時:
いい方法を思いつきました。
If InStr(ActiveWorkbook.Name, ".") >= 1 Then
Cancel = True
End If
Excelのブックは、最初に保存される前は、拡張子無しの
"Book1" という名前でして、保存されると、"Book1.xls"
となります。
そこで、ブックの名前に "." が含まれているか否かで
判定をすれば、2度目以降の保存ができなくなるという
感じです。
閲覧のみにしたいファイルを開いて、新規のブックにコピーし、
上記のマクロを仕込んだ上で保存をすれば、二度と保存できない
ファイルのできあがりとなります。
この回答への補足
ありがとうございます!
やってみましたが、だめです~
EXCELを作成する際、もともと罫線の入ったベースのEXCELファイルをコピーして作るため、新規作成じゃないんです!
でも、いいヒントになる気がします。考えて見ます!
やろうとしている、「Workbook_BeforeSaveで、Cancel=True」は、
もともと前任者入れていたマクロなので、保存する方法があるはずなんでしょうけど・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2022/08/04 13:56
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/11 12:55
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/03 13:18
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/02/07 09:58
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Word(ワード) office 2021へ自分用のクイックアクセスとマクロをコピーしたい 2 2023/03/11 21:15
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
マクロでマクロを削除する
-
EXCELで日付を自動でファイル名...
-
ファイルリネームの良い知恵を...
-
別のパソコンでエクセルのマク...
-
マクロを消すマクロは不可能?
-
エクセルで印刷する方法 エクセ...
-
EXCEL マクロ クリップボードク...
-
マクロを設定したのに、拡張子...
-
添付ファイルのみを自動印刷し...
-
ワードのマクロを他のPCに移すには
-
Excel起動時にマクロを実行させ...
-
個人用マクロブックについて
-
AccessからExcelマ...
-
エクセルVBAでloop???
-
WordのVBAマクロの実行を、一気...
-
エクセルファイルを自身のファ...
-
Excelのマクロ
-
自作アドインの使い方
-
エクセルのマクロを実行後、閉...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
excelファイルに使われているVB...
-
VBA マクロ実行時エラー’1004Ra...
-
コピーしたファイルのマクロを...
-
昨日まで動いていたエクセルの...
-
別のパソコンでエクセルのマク...
-
VBAを一度起動するとずっと出て...
-
マクロを消すマクロは不可能?
-
エクセルファイルを自身のファ...
-
アクセスでファイルを開いたと...
-
EXCEL マクロ クリップボードク...
-
Excelが勝手にシート移動してし...
-
Excelマクロ ファイル名が変わ...
-
excelが別プロセスで起動してし...
-
Excel2010 PERSONAL.xlsbの挙動...
-
エクセルマクロを有効にしない...
-
エクセル2013vbaで、見えない名...
-
エクセルマクロにてパワーポイ...
-
【マクロ】アクティブセルの行...
-
excelのマクロ実行でブロックさ...
おすすめ情報