• ベストアンサー

EXCEL マクロのパスワード設定時の機能制限について

Wendy02の回答

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。#1のWendy02です。 コードを見させていただきました。細かいところは、別として、おおよそのことは分りました。 最初に、  MsgBox myWb.ProtectStructure  MsgBox myWb.ProtectWindows  MsgBox myWb.Password おそらく、確認のためだけに使っているものだと思います。実際には、これはお使いにはならないはずですね。それで、これは、Excel 2002 以上でご使用になられるものですか? 最初のところで、気になるのは、Workbooks(1) というのは、ちょっと無謀だなって思います。Workbooks(1)というのは、最初に立ち上がったブックのことですから、明示的ではありません。ActiveWorkbook にして、MsgBox で確認を取ってコードは進むようにしたほうがよいと思います。 例: Set myWb = ActiveWorkbook If MsgBox(myWb.Name & "でよろしいですか?", vbOKCancel) = vbCancel Then Exit Sub 次は、 いきなり、シート名なしの Cells(i, 2) ですと、開いている場所ということになるのですが、こちらでは、コードだけでは読めません。flag = 1 を使っている様子もありません。これについては、うまくいっているのでしたら、関知いたしません。 肝心の部分ですが、最後の保存の部分は、単に、Application.DisplayAlerts を入れるだけでよいかは思います。  Application.DisplayAlerts = False   myWb.SaveAs Filename:= _   myWb.Path & "\" & Format$(Date, "yyyymmdd") & ".prn", FileFormat:= _   xlTextPrinter, CreateBackup:=False     MsgBox "ファイル名:" & Format$(Date, "yyyymmdd") & ".prnとして保存されました。"   ActiveWorkbook.Close SaveChanges:=False '←Falseにします。   Application.DisplayAlerts = True たぶん、ここを、True にすると、エラーではなく、アラートが出るのではないか、と思います。 #1で書いた ActiveWorkbook.Close SaveChanges:=False 他のフォーマットで保存し、出力した後のメモリ上だけに残った、拡張子「.prn」の「.xls」形式のブックは、保存は出来ませんので、捨てるしかありません。ですから、Falseにします。ウィンドウズ保護をしているので、余計にややこしくしているようです。 ただ、この手のマクロでは、一般的には、新規に、Workbooks.Add として、シート全体をコピーして、それを使うという方式が取られることが多いようです。その理由は、開いていたブックが、SaveAs の別名で保存した際に、元のブックが閉じられてしまったり、上で述べたような二重の手間が必要になるからなのです。 一応、私のほうからは、こんなところかと思います。

roro02
質問者

お礼

回答ありがとうございます。 >この手のマクロでは、一般的には、新規に、Workbooks.Add として、 >シート全体をコピーして、それを使うという方式が取られることが多いようです。 この方法を用いて解決いたしました。 大変助かりました。ありがとうございました。 ご質問事項に対してお答えしておきます。 >確認のためだけに使っている その通りです。 >いきなり、シート名なしの・・・ 本マクロはボタン押下により処理が開始となりますので問題は無いのですが、アドバイスとして受け止めておきたいと思います。

関連するQ&A

  • エクセル2007で、「マクロ」形式保存かつ「暗号化」状態で、マクロが実行できない

    エクセル2007を最近導入しました エクセル2003で作成したファイルを、2007形式に順次変換して、保存・使用しています そんなファイルの中に、「読み取りパスワード」をかけていて、 かつ、簡単なマクロ(自動記録機能を元に作成)を含むファイルがあります マクロの保存先は「作業中のブック」です このような種類のファイル(パスワード保護+マクロ実行)を2007に変換・保存しようとすると 「マクロ有効ブック形式」(*.xlsm)で保存するようにメッセージが出ます メッセージにしたがい、保存・終了し、改めて開こうとすると 「マクロを実行するためには…暗号化を解除する」ようにメッセージが表示されます (なお、ファイルにアクセス制限は設定していません) つまり、2007では、「パスワード保護+マクロ実行」というのは、混在できないようなのです 私の操作方法の誤りでしょうか? それとも、このような仕様になっていて、何か、回避する方法があるのでしょうか? 教えてください。お願いします。

  • エクセル2007のマクロのブックについて

    エクセル2007を現在使用しております。 その中のファイルで、97-2003の保存形式(xls)で使用していたマクロのブックがあります。 そのブックを保存形式はそのままで、名前だけを変更し登録しました。 すると、セキュリティの警告で、マクロが無効にされましたと表示され、 現在その都度有効に設定している状態です。 ブックの名前を変更するとマクロは無効になるのでしょうか? 原因を教えて下さい。 また、このブックだけを常に有効にする設定もあれば、 その方法もご教授下さい、お願いいたします。

  • エクセルのパスワードの機能と設定

    エクセルのパスワードの機能と設定方法について 自分で作成した表(Book)にパスワードを設定し、他人が見られないようにしたい。 今までに下記の事をしましたが、何もしてないBookと同じでした。(簡単に開ける) (1):今ある表を開きました。 (2):「ツール」メニューの「保護」をポイントし、「ブックの保護」をクリックし、 「シート構成」チェツクボックスをオンにした。 (3):パスワードを2回入力した。2回目は再入力 (4):保存処理をした。(上書きと新規を) これで、次回からは、パスワードを入力しなければ、「開けない」と思っていました。 しかし、以前と全く変わらず、簡単に開けます。 私の何処がご操作なのでしょうか? ご多忙中恐れ入りますが、よろしくお願いします。。

  • EXCELの保存にパスワード。

    エクセルでブックを保存する際に、パスワードを表示して、それがあっていないと上書き保存できないようにするにはどうしたらいいのでしょう。 また、マクロで「BeforSave」を使って、保存しようとしたら「はい。いいえ。」のメッセージを出し、「はい」ならそのまま保存、「いいえ」なら保存せずにブックに戻る、というようなことができますか。

  • Excelによるパスワード設定、IPアドレス制限

    Excelファイルにて、下記の機能を実現できるかどうかを教えていただけないでしょうか。 また、実現するためにはどのような設定、機能などを利用すればいいのかを ご教授いただきたく質問致しました。 機能に関しましては、代替機能でも構いません。 Excelのバージョンは、2010にて動作すれば構いません。 よろしくお願いいたします。 ●機能(理想) 1.別のシートの列Aに入力されている値がプルダウンとして表示されており、 プルダウンを選択すると同じ行にある列B~列Eまでの情報が表示される 2.別のシートの情報は編集権限(パスワード等)にてロックされており、 編集不可または非表示として閲覧・編集ができない 3.指定のIPアドレスではない場合、Excelファイルの閲覧を拒否する ●不安事項 ・1に関しましては、通常であれば可能であると考えられますが、値を呼び出す対象シートが編集不可または非表示の場合でも値は呼び出されるのか。 ・3のIPアドレス拒否が利用できない場合、ファイル全体へパスワードを 掛ける方法しか思い浮かびませんが、その場合、2のシート情報の編集権限(パスワード等)は、別のパスワードを設けることは可能でしょうか。 または、ファイル全体へパスワードを設けて、シートを編集できるパスワード、 シートが編集不可または非表示のパスワードと2つのパスワードを設定することは可能でしょうか。

  • エクセルマクロ

    入力したワークシートを 新しいブックにコピーして保存するマクロを作成しました。 ただ下記の様に保管すると、 数式もそのまま元のエクセルファイルの数式を参照してしまいます。 下記のマクロをあまり変更しないで、 値貼付け(もしくは値貼付けしながら、新しいブックへコピー) するにはどの様に変更するといいでしょうか? よろしくお願いします。 'Sub newfilesave() Sheets("Sheet1").Copy '名前を付け、ファイル形式も決めてデスクトップに日付を付けて保存する。。 'ActiveWorkbook.SaveAs _ ' Filename:="C:\Users\xxxxx\Desktop\" & Format(Now(), "yyyymmdd_hhmm"), _ ' FileFormat:=xlOpenXMLWorkbook 'End Sub

  • Excel>マクロを使っていないはずなのにマクロを有効にするかどうか聞かれてしまう

    こんにちはtmgmです。 Excelについての質問です。Excelのブックを開くとマクロが有効かどうか毎度聞いてきます。作業としては次のような手順を踏みました。 ------------------------- (1)Book1.xlsにマクロを作成し、保存して閉じる (2)再度Book1.xlsを開き、マクロが不要になったので、コード編集画面を開き、モジュールの解放後、保存(マクロが割り当てられていたボタンも消去) (3)改めてBook1.xlsを開くと、「マクロを有効にするかどうか聞いてくる」(メッセージからも判るとおりセキュリティは中にしています。) ------------------------- 毎回マクロが有効かきかれなくするにはどうすればよろしいでしょうか?モジュールの解放だけではだめでしょうか?お分かりになる方、ご返答宜しく御願いします。

  • エクセル2010 互換モードでの新機能の制限

    エクセル2010で、ファイルの種類を「Excel97-2003ブック」にした場合、互換モードで保存されますが、 だからと言って、このファイルを再度開いたときに、 新機能の使用が制限されている というわけではないのでしょうか? ついうっかり新しい機能を使ってしまった場合、いざ上書き保存しようとすると 「このブックで使用されている次の機能は、以前のバージョンのExcelではサポートされていません」 と表示が出るので、とても不便に感じます。 やはり、どれとどれが旧バージョンでは使えない新機能なのか、把握しておかないといけないのでしょうか?

  • パスワードのかかっているエクセルファイルを開くマクロ

    こんにちは、 エクセルのファイルが40近くあります。それぞれ異なったパスワードで保存されています。すべてのファイル名とそのパスワードはわかっています。パスワードのかかっているエクセルファイルを開き、特定の部分(例えばA1のセル)の合計を求めるようなマクロを組もうと思っています。 パスワードのかかっているエクセルファイルを開くようなマクロを組むことは可能でしょうか?もしご存知の方がいましたら、ご教授いただければ助かります。よろしくお願いいたします。

  • エクセルマクロでファイルを保存するとき

    エクセル(2000)のマクロで、csvファイルを集計して、そのファイルをエクセル形式で保存しようとしています。 このとき、「カレンダー用データファイル」という名前で保存するように指定していますが、もし、同名のファイルが開いていたりすると エラーが出てしまいます。 マクロの中で、「カレンダー用データファイル」という名前のファイルが、現在開いていないか調べることが出来るのではと、いろいろ探してみたのですが、どうしても判りません。 どなたか 教えていただけませんか? また、同様のことを何度も繰り返すので上書き保存をしたいのですが、いちいち「同名のファイルがありますが上書きしますか?」というアラートを出さなくて住む方法もありましたら教えていただきたいです。