- PR -

EXCELを読み取り専用で開きたい

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-05 22:33
引用:

ななさんの書き込み (2004-01-05 17:35) より:

読み取り専用で開くというよりもファイルを閉じる時に"保存しますか?"
のポップアップを出したくないのです。


 普通に閉じるのではなく、マクロ起動をするボタンを置いて、マクロで「編集内容を破棄して終了する」ようにする、、、ことはできると思います。

#まぁ、そのボタンをすべてのシートに表示するのか、などの問題はありますが
リックス
常連さん
会議室デビュー日: 2001/10/01
投稿数: 47
お住まい・勤務地: 東京
投稿日時: 2004-01-06 02:59
こんばんは。

引用:
ななさんの書き込み (2004-01-05 17:35) より:

読み取り専用で開くというよりもファイルを閉じる時に"保存しますか?"
のポップアップを出したくないのです。



期待している内容かどうか微妙ですが、単純にこのメッセージを抑止したいのであれば、閉じる直前に、WorkBookオブジェクトのSavedプロパティにTrueを代入します。

ユーザーが操作した後でも無条件に抑止するのであれば、こんなのはいかがでしょうか。
コード:
'EXCEL WorkBookオブジェクト内でのVBAコード
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    ThisWorkbook.Saved = True
End Sub


参考にしてください。
なな
ベテラン
会議室デビュー日: 2003/09/18
投稿数: 79
投稿日時: 2004-01-08 11:29
なみへーさん、Clusterさん、Jittaさん、リックスさん投稿ありがとうございます。
リックスさんのやり方で行ったところ(マクロに投稿ロジックを組み込んだだけなのですが・)
それでもポップアップは出てしまいます。
Jittaさんのシートにマクロでボタンを作るというのも
運用上、シートが数十出てくることもありえるので・・ちょっと無理かと思われます。
もう少し、他にもやり方があるかどうか調べなおします。
なみへー
会議室デビュー日: 2003/11/13
投稿数: 10
投稿日時: 2004-01-08 13:29
ななさんの目的と多少外れてしまうかもしれませんが
下記のコードを、一番最後に追記してみてください。
”Sheet1”が保護されます。
#ただし、xlNoSelectionの部分は変更が必要です。

コード:
ObXls.Application.Sheets("Sheet1").select()
ObXls.Application.Cells.Select()
ObXls.Application.ActiveSheet.Protect(DrawingObjects:=True, Contents:=True, Scenarios:=True)
ObXls.Application.ActiveSheet.EnableSelection = xlNoSelection


軽く調べてみましたが、xlNoSelectionの値がわかりませんでした。
xlUnlockedCells=1でしたが、この場合は変更しようとするとメッセージが表示されて
しまいます。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-01-08 13:41
引用:

ななさんの書き込み (2004-01-08 11:29) より:

リックスさんのやり方で行ったところ(マクロに投稿ロジックを組み込んだだけなのですが・)
それでもポップアップは出てしまいます。


 ローカルなファイルの場合はOkだけど、httpを通すとNGですね。さらにマクロを有効にするかどうかのポップアップまででますし(署名すればでないのかな?)。


引用:

Jittaさんのシートにマクロでボタンを作るというのも
運用上、シートが数十出てくることもありえるので・・ちょっと無理かと思われます。


 フォームを使ってシートに依存させない方法はありますが、リックスさんのと同じ結果になるでしょう。フォームを消されたらアウトだし、マクロを有効にするかのポップアップはでるし。。。

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-01-08 13:42 ]

スキルアップ/キャリアアップ(JOB@IT)