No.8ベストアンサー
- 回答日時:
>ご教示いただいた内容(Cells.Font.ColorIndex = 0')をそのまま
そのままで良いです。意味は 文字の色を自動に 設定するだけです。
回答前のファイル作成して保存するときは、必ずシートを選択して文字色を白、シートに保護
ブックの保護は解除して保存することになりますね。(毎回で大変ですが)
マクロで時間が来て保存された状態は
シートに保護、色は自動、ブックに保護の状態です。
更にと気が付いたので、終了時に保存のいいえを選択する可能性がありますね。
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
Msgbox "指定の時間が来ましたので編集できなくなりました。指定のフォルダに回答を保存してください。"
Application.DisplayAlerts = False'←メッセージを出さない
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
の1行を加えると上書き保存しますかのメッセージがでなくなります。
この1行はうまく出来るようになってから記述しないと修正の作業が大変になります。
何度もありがとう御座います。
なるほど!
おっしゃる通りですね。
考えれば考えるほど色々出て来ますよね。
実は この質問は 僕の業務ではなく 担当者の代わりに板を立てていたのですが
今後は 担当者が直接 質問するようにしましたので 同じ内容の質問を見付けたら回答してやってください。
中途半端になってしまいましたが
何度も ご回答いただきましてありがとう御座いました。
本当はポイントを全部付けたい所なのですが 同じ方には1回しか付けられないので
20ポイントで我慢してください。
何度も何度もありがとう御座いました。
No.7
- 回答日時:
標準モジュールには
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
Msgbox "指定の時間が来ましたので編集できなくなりました。指定のフォルダに回答を保存してください。"
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
とOnTime1に全て記述してみてください。
先のコードは
OnTime1では シートに保護
Ontime2では ブックに保護の事例です。
上記のコードでシートにもブックにも保護がかかると思います。
>VBEの方にも保護を掛けるには どのようにしたら良いのでしょうか。
VBエディターのツール=>VBAProjectのプロパティのウィザードの保護があります。
もうひとつ気がつきました、シートを保護にしてもマクロを無効で開いて問題を読むことが出来てしまいますね。
例えば、シート全てを選択して文字の色を白にする。(A1のメッセージだけ黒色で見れる)この状態で保存しておく。
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="1234"
Cells.Font.ColorIndex = 0'←ここに一行追加、文字の色を自動にします。
Range("A1").Value = "終了時間は"
Range("B1").Value = Now + TimeValue("00:00:10")
Application.OnTime EarliestTime:=Now + TimeValue("00:00:10") _
, Procedure:="OnTime1"
End Sub
にしてみては如何でしょうか。
何度も ご回答いただきまして誠にありがとう御座います。
ご教示いただいた内容に従い、Sub OnTime1() も Sub OnTime2() も
両方 同じマクロとして修正いたしました。
プラス、「マクロを無効にして開いた時は文字が見えないように」これには
激しく感動しましたので そのまま使わせていただく事にしました。
がしかし マクロを無効にして開いてみた所、普通に見えてしまいました。
ご教示いただいた内容(Cells.Font.ColorIndex = 0')をそのまま貼り付けてはいけなかったのでしょうか?
また 時間制限の過ぎたブックを閉じようとしたら「実行時エラー1004」「その操作はできません。このブックは読み取り専用ファイルです」という警告が出てしまいました。
何がいけなかったのでしょうか。。
再度 ご教授いただけませんでしょうか。
宜しくお願い致します。
No.6
- 回答日時:
もうひとつ説明わすれました。
ファイル作成したら、保存して閉じてください。
次に開いたときに
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="1234"
~
End Sub が実行されます。
標準モジュールのコードは
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
Msgbox "指定の時間が来ましたので編集できなくなりました。指定のフォルダに回答を保存してください。"
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
シートに保護かけて、メッセージ出して、ブックに保護かけて、終了
しますね。こちらのほうが少しは良いかも。
受験者にVBA操作されたらOUTですので、うまく行ったらVBエディターでも保護かけることが必要かもしれませんね。
お世話になっております。
ご回答ありがとう御座います。
ご教示いただいた内容をそれぞれ貼り付けてみた所、ものの見事に
メッセージボックスが表示され、編集不可となり感動いたしました。
ありがとう御座います。
ただ、貼り付け場所が悪かったのか何が原因か不明ですが
閉じる時に「変更を保存しますか?」で「はい」を選んで再度開いてみた所パスワードなしで
普通に開いてしまいました。。。
「ThisWorkbook」には
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="1234"
Range("A1").Value = "終了時間は"
Range("B1").Value = Now + TimeValue("00:00:10")
Application.OnTime EarliestTime:=Now + TimeValue("00:00:10") _
, Procedure:="OnTime1"
End Sub
を貼り付け
「標準モジュール」には
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
MsgBox "指定の時間が来ましたので編集できなくなりました。指定のフォルダに回答を保存してください。"
End Sub
Sub OnTime2()
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
このまま貼り付けたのですが 何が間違っているのか 再度 ご教授いただけませんでしょうか。
お手数お掛けしまして申し訳ありません。
宜しくお願い致します。
また、通常のブックには保護を掛けられるのですがVBEの方にも
保護を掛けるには どのようにしたら良いのでしょうか。
お忙しい中 大変恐縮では御座いますが、こちらも合わせてご教授いただけますでしょうか。
何卒 宜しくお願い致します。
No.5
- 回答日時:
>「ThisWorkBookに」とか「標準モジュールに」という意味も正直理解できておりません。
VBエディターを起動したら左側に プロジェクト Project というWindowがありませんか?
その中にThisWorkBookがあります。そこをクリックしてください。
新たにThisWorkBook(コード)が開きますので、そこに
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="1234"
~
End Sub を記述すると開いたときにイベントが実行されます。
Password:="1234" はそちらの状況に合わせてください。
他に標準モジュールが開いていればOKですが、
なければ、VBエディターのツールバーの挿入から標準モジュール をクリックしてください。
VB Projectに 標準モジュール Module1 が開きます。
そこに
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
~
End Sub と
Sub OnTime2()
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
を記述します。
・・・, Procedure:="OnTime1"の部分で希望の処理を記述してください。
再回答 誠にありがとう御座います。
まだ 試しておりませんが 取り急ぎお礼まで。
>VBエディターを起動したら左側に プロジェクト Project というWindowがありませんか?
これは 自分で勝手に閉じていたようです。
真ん中の広い部分しか表示しておりませんでしたので 登録する部分にも
種類があると今回初めて知りました。
今から 試してみますので また 分からないことがあったら
宜しくお願い致します。
(面倒なことに巻き込んですみません、宜しくお願い致します)
No.4
- 回答日時:
No3です。
シートの保護かけても最後開いて不正されますね。
Sub OnTime2()
ThisWorkbook.SaveAs Password:="1234", WriteResPassword:="1234"
ThisWorkbook.Close
End Sub
上記でパスワードを指定して保存できます。
ほか、開いた時、終了時に空メールを送信させる。
非表示のシートを準備して開いた時の時刻と保存した時の時刻をセルに入れる。
ファイルのプロパティで更新の時刻を確認するなどありそうですが、
不正をやる人は何を考えるかわかりませんので絶対とはいえないかも知れませんね。
No.3
- 回答日時:
お役に立つかどうか、とりあえずアイディアです。
仮にシートのA1に 「マクロを有効にして開かなかったので試験を受けられません」
とでもデカ文字でいれて、シートに保護をかけてファイルを保存しておく。
VBエディターで ThisWorkBookに
Private Sub Workbook_Open()
ActiveSheet.Unprotect Password:="1234"
Range("A1").Value="終了時間は"
Range("B1").Value=Now + TimeValue("00:30:00")
Application.OnTime EarliestTime:=Now + TimeValue("00:30:00") _
, Procedure:="OnTime1"
End Sub
上記の意味は、ファイルと開いた時にシートの保護を解除、A1の文字を消し、終了時間を表示する。
30分後に Ontime1 のマクロを実行
標準モジュールに
Sub OnTime1()
ActiveSheet.Protect Password:="1234"
Msgbox "指定の時間が来ましたので編集できなくなりました。指定のフォルダに回答を保存してください。"
End Sub
上記の意味は、シートに保護をかけて編集できなくする。終了のメッセージを出す。
こんな感じでは如何でしょうか。
ご回答ありがとう御座います。
試しに ご記入いただきました内容を全部貼り付けてみたのですが
まず、「このシートは保護されているので読み取り専用です」となり
しかもタイムリミットを1分に変更してみましたが 未だに開いたままです。
そもそも ご教示いただいた内容を そのまま貼り付けるだけではNGだったのでしょうか?
「ThisWorkBookに」とか「標準モジュールに」という意味も正直理解できておりません。
全部をまとめて貼り付けたのが いけないのか、それとも貼り付けた場所がそもそもダメなのか、はたまた 何かしら編集が必要だったのか。
再度 ご教示いただけませんでしょうか。
お忙しい中 大変恐縮では御座いますが 何卒宜しくお願い致します。
No.2
- 回答日時:
VBAで組む場合の参考に
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv214.htm …
試験とはエクセルの操作の試験?
それとも問題自体の表示か参考資料が表示されるのかな?
エクセルの操作手順や、マクロ作成が問題の場合は、時間制限をマクロで組むこと自体に無理がありそうな気もする、変更や停止処理されてしまえばそれまで。
マクロの無効化に関しては、問題を表示するのもマクロに組み込めば、無効にした時点で問題表示もされなくなるので解決するかとは思いますが、システムの時間を変更されたらどうします?
エクセル以外の他のソフト内(IEとか)でエクセルを読み込んで操作可能なシステムで、エクセル以外のところで時間計測を行うシステムが良いと思う、実現方法はちょっとわからないけど、MOUSの試験のような感じで。
ご回答ありがとう御座います。
>MOUSの試験のような感じで。
そうなんですよ! こんな感じでやりたいんです!
>試験とはエクセルの操作の試験?それとも問題自体の表示か参考資料が表示されるのかな?
これは後者ですね。
ただ単に「試験問題をExcelで配信したい」ってだけなんですよ。
問題の作り方私大では採点も楽になるかなぁ?と。
>エクセル以外の他のソフト内(IEとか)でエクセルを読み込んで操作可能なシステムで、エクセル以外のところで時間計測を行うシステムが良いと思う
これも出来たら それに越した事はないですね。
何かいい方法はないでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
あなたの「必」の書き順を教えてください
ふだん、どういう書き順で「必」を書いていますか? みなさんの色んな書き順を知りたいです。 画像のA~Eを使って教えてください。
-
大人になっても苦手な食べ物、ありますか?
大人になっても、我慢してもどうしても食べれないほど苦手なものってありますよね。 あなたにとっての今でもどうしても苦手なものはなんですか?
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら「ろうそくの数はあなたが好きな人の数です」と言われ浮気者扱いされたことをいまだに根に持っています。
-
ハマっている「お菓子」を教えて!
この世には、おいしいお菓子がありすぎて……。 次何を食べたらいいか迷っています。 みなさんが今、ハマっている「お菓子」を教えてください!
-
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
エクセルVBA 10分後にエクセル自動終了&カウン
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
VBAでブックを非表示で開いて処...
-
エクセルの関数 ENTERを押...
-
Excelファイルをダブルクリック...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
印刷しようとすると強制終了に...
-
エクセルにおける,「ブック」...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
WorkBooksをオープンさせずにシ...
-
Excelで複数ブックの同一セルに...
-
同じフォルダへのハイパーリン...
-
Excel起動時に特定のワークシー...
-
エクセルに別ファイルのエクセ...
-
エクセルで開いていないbookの...
-
指定ファィルの指定シートをシ...
-
ブックの保護ができないんです...
-
エクセルVBAでブックを相対パス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
Excel(2010)のフィルターが保...
-
エクセルで参照しているデータ...
-
印刷しようとすると強制終了に...
-
WorkBooksをオープンさせずにシ...
-
エクセルにおける,「ブック」...
-
Excelでブックの共有を掛けると...
-
Excelファイルをダブルクリック...
-
エクセルファイルを開かずにpdf...
-
ブックのピボットを別ブックに...
-
Excel起動時に特定のワークシー...
-
エクセルで「ディスクがいっぱ...
-
同じフォルダへのハイパーリン...
-
VBA バックグラウンドで別ブッ...
-
フォルダ内の複数ファイルから...
-
エクセルシートの一部を送りたい
-
Excelで複数ブックの同一セルに...
おすすめ情報