今検定の勉強中です。

ExcelXPなのですが、マクロの組まれているデータを開こうとすると
『このブックにあるマクロは、セキュリティレベルが高に設定されており、デジタル署名されていないかまたは安全なものとして確認されていないため利用できません。マクロを実行するには、署名するか、またはセキュリティレベルを変更する必要があります。詳細については、ヘルプを参照してください』
となり、ヘルプを読んでもわからず困っています。

よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

マクロが組まれているとあらかじめわかっている、


ファイルを開きたいんですよね?

『このブックにあるマクロは、セキュリティレベルが高に設定されており、デジタル署名されていないかまたは安全なものとして確認されていないため利用できません。マクロを実行するには、署名するか、またはセキュリティレベルを変更する必要があります。詳細については、ヘルプを参照してください』

は、エラーメッセージじゃなくて、警告メッセージなので、
この下にあるOKボタンを普通に押せば、マクロが有効な状態で、ファイル開けますよ。

セキュリティレベルは、変更することができますが、
「高」をお勧めしておきます。

変更の仕方は、
ツール→オプション→オプション→セキュリティタブ→
一番下にあるマクロセキュリティグループの、
[マクロセキュリティ]ボタンを押すと、
変更できます。

そのマクロのファイルが安全なものである場合には、
(たとえば、模擬試験用に作られていた市販のテキストファイルとか。)
セキュリティレベルを変えてから開いてみてもいいと思います。

追伸:OfficeXPですが、単体の場合は、Excel2002(Or Word2002)と表記します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「セキュリティレベルが高」のためマクロが使えない

windows2000に入っているエクセルでマクロを使おうとすると、

「このブックにあるマクロはセキュリティレベルが高に設定されており、デジタル証明されていないかまたは安全なものとして確認されていないため利用できません。マクロを実行するには署名するか、またセキュリティレベルを変更する必要があります。」

と、出るのですが、実際どうすればマクロが使えるようになるのか分かりません。
具体的に分かる方、教えてください。

Aベストアンサー

エクセルのメニューバーの>ツール>オプション>セキュリティのタブ>右下のマクロセキュリティをクリック
開いたら、セキュリティレベルのタブのレベルが 高 になってるのでそれを下げてください。中に。
そしたらできるとおもいます。

Qエクセル2003 マクロのセキュリティを「低」にしても、マクロを無効にしてファイルを開く方法

http://oshiete1.goo.ne.jp/qa5101957.html
で質問したものなのですが、
アクセスでは教えていただいたとおり、Shiftキーを押しながら開くと無効にできるのですが、
エクセルに関しては、Shiftキーを押しても、ブックのオープンイベントが発生します。

エクセルでも場合によっては無効にして開きたい時はどうすればいいでしょう?

よろしくお願いします。

Aベストアンサー

こんにちは。

ふつう、「Shift を押しながら開く」ということは、エキスプローラ上ではなくて、一旦、Excelを開いて、「開く」のメニューから、ファイルを選択して「Shiftを押しながら開く」を実行します。

エキスプローラ上から、ファイルを選択して開こうとすると、アドイン等は解除されるのですが、実際の、目的のファイル(ブック)のOpenイベント・ドリブン型マクロは起動してしまいます。

ただし、逆に、メニューから、「Shift を押しながら開」いてみても、アドインなどの特殊なマクロに関しては動いています。

それでも気になるようなら、「スタート」から、Excelを選択して開くときに、Ctrl を押しながら立ち上げてください。「セーフモード」で、一切、マクロもアドインも動きません。

QExcelのマクロ有効ファイルの署名について

Excel2007で、マクロ有効ファイル(.xlsm)を作成しました。
VisualBasicを使っています。

会社にはサーバーがあり、サーバー内に社員全員が見ることのできるフォルダを作ってあり、
ファイルをそのフォルダ内に保存しました。
社員のだれもが自分のPCでファイルの変更・保存ができるようにします。
全員のPCについて「開発タブ」を表示してもらい、マクロの実行を各自のPCでできるようにしました。

作成した私のPCでは、問題なくこのファイルを開いて変更・保存をすることができますが、
他の社員のPCでは、マクロの実行ができませんでした。

開発タブのマクロのセキュリティから、「全てのマクロを有効にする」を選んだらできるようになりましたが、推奨しません とありますし、できれば避けたいと思います。

色々と調べてみたのち、デジタル署名をしてみました。
作成した私のPCの「すべてのプログラム」から
MicrosoftOffice→MicrosoftOfficeツール→VBAプロジェクトのデジタル署名
で署名を作成し、
VisualBasicの「ツール」で署名を選択し設定しました。

この後の各社員のPCの設定について、どのようにするのが適切か、
アドバイスいただけましたらと思います。

どうぞよろしくお願いいたします。

なお、各社員のPCでは、Excel2007とExcel2010があります。

Excel2007で、マクロ有効ファイル(.xlsm)を作成しました。
VisualBasicを使っています。

会社にはサーバーがあり、サーバー内に社員全員が見ることのできるフォルダを作ってあり、
ファイルをそのフォルダ内に保存しました。
社員のだれもが自分のPCでファイルの変更・保存ができるようにします。
全員のPCについて「開発タブ」を表示してもらい、マクロの実行を各自のPCでできるようにしました。

作成した私のPCでは、問題なくこのファイルを開いて変更・保存をすることができますが、
他の社員のPCでは、マク...続きを読む

Aベストアンサー

方法1:
アドインにして配布し,組み込んで使って貰う。


方法2:
デジタル署名を取り付けたブックを保存し,配布して開いて貰う。

Excel2007の場合
事前にセキュリティセンターのマクロの設定で
デジタル署名されたマクロを除き,すべてのマクロを無効にする
または
警告を表示して全てのマクロを無効にする
にしておき,
セキュリティの警告「マクロが有効にされました」が現れるのでオプションをクリック,
この発行者のドキュメントを全て信頼するにマークしてOKする

Excel2010の場合
「Microsoft Excelのセキュリティに関する通知」ダイアログが現れるので「発行元からのコンテンツを常に信頼する」のボタンをクリックする

と,以後署名を付けたマクロブックを無条件に開いて使用できます。

Qあるシートを10枚印刷するマクロを組みました。

あるシートを10枚印刷するマクロを組みました。

これの前後にauto open,close を足せば、アイコンをクリックするだけで、10枚印刷することができると思うのですが、どのように書けばいいか調べたのですが、わかりませんでした。

初歩的な質問だとは思いますが、よろしくお願いします。

Aベストアンサー

auto openに印刷して、閉じる マクロを組み込むと印刷は出来ると思いますが
ファイルを編集するのに大変ではないでしょうか?
編集したくてもすぐに閉じてしまいます。
>アイコンをクリックするだけで、10枚印刷することができると思うのですが
デスクトップにアイコンを作って、クリックするということですよね。
一例ですが、VBSファイルを使って、印刷する方法です。
メモ帳を開いて

Option Explicit
Dim objExcel
Dim xlBook
Dim xlSheet
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open "F:\TEST.xls"
Set xlBook = objExcel.Workbooks(1)
Set xlSheet = xlBook.Worksheets(1)
xlSheet.PrintOut ,,5
objExcel.Workbooks(1).Close
objExcel.Quit
Set objExcel = Nothing
Set xlBook = Nothing
Set xlSheet = Nothing

を貼り付けて、名前をつけて保存、デスクトップに 印刷.VBS(必ず拡張子を VBS とします)
デスクトップに テキストファイルのアイコンが出来るのでクリックしてみてください。

VBAではなくて VBS の機能が実行されて印刷されます。
プログラムの流れは
F:\TEST.xls を開いて
Worksheets(1) 一番上のシートを 
xlSheet.PrintOut ,,5 5枚印刷して
objExcel.Workbooks(1).Close ブックを閉じて
objExcel.Quit エクセルを終了
と云った流れです。
うまく作動するようになったら
objExcel.Visible = True
の行を削除してください。

auto openに印刷して、閉じる マクロを組み込むと印刷は出来ると思いますが
ファイルを編集するのに大変ではないでしょうか?
編集したくてもすぐに閉じてしまいます。
>アイコンをクリックするだけで、10枚印刷することができると思うのですが
デスクトップにアイコンを作って、クリックするということですよね。
一例ですが、VBSファイルを使って、印刷する方法です。
メモ帳を開いて

Option Explicit
Dim objExcel
Dim xlBook
Dim xlSheet
Set objExcel = CreateObject("Excel.Application")
objExcel.Visi...続きを読む

Qマクロ:修正したのに元にもどってしまう。&違うシートを参照する

お世話になっています。
「××シートのセルに文字列を記入したとき、●●という別シートの中のデータを一列チェックして一致していたら、書き込んだセルの隣のセルに××という文字を書き込む」という処理を考えています。
●●というシートには、A列とB列にランダムな単語が並んでいます。
例えば、
A   B
スズキ 神奈川
サトウ 千葉
タナカ 東京

という感じです。
××シートでは、
A   B
スズキ

と書き込んだら
A   B
スズキ 神奈川

と自動入力してほしいのです。
今のところ、

Dim sName As String
sName = Target.Value
For i = 1 To Sheets("●●").Range("A1").End (xlDown).Row
If sTitle = Sheets("●●").Cells(i, 1).Value Then
※ Offset(0, 1).Value = Sheets("●●").Cells(Resize(1, 0)).Value
    Exit For
   Else
       Target.Interior.ColorIndex = xlNone
     End If
     Next i
という処理を考えていますが、※というところが自信ありません。

あと、エラーが出てコードを修正してコンパイルをかけると、修正する前のコードに戻ってしまい、同じエラーメッセージが出てきます。
修正後に上書き保存をしたり、一度ブックを閉じてまた開いて・・・としても駄目でした。
このせいで作業がだいぶ遅れるのですが、修正前に戻らないようにする方法はないでしょうか?

お世話になっています。
「××シートのセルに文字列を記入したとき、●●という別シートの中のデータを一列チェックして一致していたら、書き込んだセルの隣のセルに××という文字を書き込む」という処理を考えています。
●●というシートには、A列とB列にランダムな単語が並んでいます。
例えば、
A   B
スズキ 神奈川
サトウ 千葉
タナカ 東京

という感じです。
××シートでは、
A   B
スズキ

と書き込んだら
A   B
スズキ 神奈川

と自動入力してほしいのです。
今のとこ...続きを読む

Aベストアンサー

こんにちは。

イベント・ドリブン型だと思いますが、質問で出されただけではよく分からない部分がありました。なお、それは、ループでは探しません。

'××シートのモジュールに入れてください。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Variant
  If Target.Column <> 1 Then Exit Sub 'A列(1列)以外は除外
  If Target.Value = "" Then Exit Sub
  If Target.Count > 1 Then Exit Sub
  i = Application.Match(Target.Value, Worksheets("●●").Range("A:A"), 0)
  Application.EnableEvents = False
  If Not IsError(i) Then
    Target.Offset(, 1).Value = _
    Worksheets("●●").Range("A:A").Cells(i).Offset(, 1).Value
  End If
  Application.EnableEvents = True
End Sub

こんにちは。

イベント・ドリブン型だと思いますが、質問で出されただけではよく分からない部分がありました。なお、それは、ループでは探しません。

'××シートのモジュールに入れてください。

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Variant
  If Target.Column <> 1 Then Exit Sub 'A列(1列)以外は除外
  If Target.Value = "" Then Exit Sub
  If Target.Count > 1 Then Exit Sub
  i = Application.Match(Target.Value, Worksheets("●●").Range("A:A"), 0)...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報