こんにちは。Excel2000を使用しているのですが、膨大な計算式を作成する際、マクロを使用して作りました。
 作成し終わって、マクロを削除して上書き保存したんですが、次回もそのファイルを開くときに「このファイルにはウイルスが含まれている可能性があります。マクロを無効にしますか?」というメッセージが出てきます。このファイルにおいて、このメッセージを表示しないようにするにはどうすればいいのでしょうか?
 よろしくお願いします。

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

A 回答 (3件)

こんにちは



 以下のページがご参考になるのでは?

【エクセル技道場】-マクロ-マクロを削除したのに警告が出る
http://www2.odn.ne.jp/excel/waza/macro.html#SEC1

参考URL:http://www2.odn.ne.jp/excel/waza/macro.html#SEC1
    • good
    • 0

こんにちは。

maruru01です。
メニューバーのツール→マクロ→セキュリティー→セキュリティーレベルを「低」にすると次回からマクロの警告メッセージは出なくなります。
では。
    • good
    • 0

Visual basic editorを開いて作成したモジュールの開放を行えば


メッセージが出なくなると思いますが
    • good
    • 0

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

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

Qエクセルマクロについて質問です ファイルを開くマクロをワイルドカードを使用して作成したいです

エクセルマクロの初心者です
ファイルを開くマクロを作成したいです。

対象のファイルは、
 商品コード(5桁の数字) スペース 商品名
 たとえば 40157 ベーコンスライス500g
という名前が付いており、100個以上同一のフォルダに入っています。商品コードのみを入力して、マクロを実行すると目的のファイルが開ける。という形式で作りたいです。
商品名まで入力し、開きたいファイル名と完全に一致させれば

Sub 栄養計算()
'
Workbooks.Open Filename:="D:\ekuseru\" & Range("E4").Value & ".xls"

End Sub

で実行できたのですが商品名まで入力するは大変です。
そこで、ワイルドカードを使えばコードのみの入力でできるカナと思い試してみたのですがうまくいきませんでした。一応調べてみて Like関数を使うとできるという話を見つけたのですが、私が未熟なのかうまくできませんでした。
とても初歩的な質問で恐縮なのですが、自分では完全に行き詰ってしまいましたので、皆様の力をお借りしたいです。お願いします。

エクセルマクロの初心者です
ファイルを開くマクロを作成したいです。

対象のファイルは、
 商品コード(5桁の数字) スペース 商品名
 たとえば 40157 ベーコンスライス500g
という名前が付いており、100個以上同一のフォルダに入っています。商品コードのみを入力して、マクロを実行すると目的のファイルが開ける。という形式で作りたいです。
商品名まで入力し、開きたいファイル名と完全に一致させれば

Sub 栄養計算()
'
Workbooks.Open Filename:="D:\ekuseru\" & Range("E4").Value...続きを読む

Aベストアンサー

ワイルドカードでやるなら、Dirで該当ファイルがあるか調べて開いては?
ワイルドカードで無い場合でも、ファイルを開く前に存在するか否かを確認するのは基本です。

Sub 栄養計算()
 Dim sTarget As String
 sTarget = Dir("D:\ekuseru\" & Range("E4").Value & "*.xls")
 If sTarget <> "" Then
  Workbooks.Open Filename:="D:\ekuseru\" & sTarget
 Else
  MsgBox ("該当ファイル無し")
 End If
End Sub

商品コードで始まるファイルが複数ある場合は考慮していません。

Qエクセルvbaでファイル書き込みのとき同じファイルがある場合に\"上書きしますか?\"というメッセージをだすには?

エクセルvbaでファイル書き込みのとき同じファイルがある場合に"上書きしますか?"というメッセージをだすには、どのようにやればよいでしょうか?
ダイアログで上書きするときにメッセージを出すようにしたいのです。
現在は、
Dim fo As New Scripting.FileSystemObject
Dim ts As TextStream

Dim myDir As String
Dim myFileDir As String

myDir = ThisWorkbook.Path
myFileDir = myDir & "\a.txt"
'ここにファイルを探すコードを埋め込んでいます。
Set ts = fo.CreateTextFile(myFileDir, False)

よろしくお願いします。

Aベストアンサー

If ファイル有り Then
  If MsgBox("上書きしますか?", vbYesNo) = vbYes Then
    Set ts = fo.CreateTextFile(myFileDir, True)
  Else
    'Exit Sub は 必要に応じて他の処理に替えてください。
    Exit Sub
  End If
Else
  Set ts = fo.CreateTextFile(myFileDir, False)
End If
 

QEXCEL VBA)ファイルを作成する際に「そのファイルは既に存在します」の警告を出さずに上書きしたい

下記の「AAA」ブックを作成するコードを実行した際に、「そのファイルは既に存在します。上書きしますか[はい][いいえ]」という警告が出ます。この警告を出さずに、即上書きするようにしたいのですが、どうすればよいでしょうか。よろしくお願いします。

ActiveWorkbook.SaveAs Filename:="c:\FILE\AAA.xls"

EXCEL2000を使用しています。

Aベストアンサー

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="c:\FILE\AAA.xls"
Application.DisplayAlerts = True

Qファイル名を変更するマクロを作成したが「ファイル名または番号が不正です」と表示されます

Webサイト(http://bit.ly/1SszVqL)より、以下のサンプルのマクロをコピーして実行しました。ですが、「×ファイル名または番号が不正です。:52」というエラーで、マクロが機能しません。こちらのマクロのおかしいところを教えてください。詳細は下の通りです。

---------------

Sub A()

Dim fp As String
Dim i As Long
Dim fo As String
Dim fn As String

'パスを変数に格納
fp = Range("A1").Value & "\*.*"

On Error GoTo ERR_HANDL

Range("C4").Value = "実行結果"

'5行目から最終行までループ処理を実行
For i = 5 To Cells(Rows.Count, 1).End(xlUp).Row
'現在のファイル名を取得
fo = Cells(i, 1).Value
'新しいファイル名を取得
fn = Cells(i, 2).Value
'新しいファイル名が入力されているときのみ処理を実行
If fn <> "" Then
'正常処理の実行結果を先に入力
Cells(i, 3).Value = _
"○ファイル名を" & _
"「" & fo & "」から" & _
"「" & fn & "」に変更しました。"
'ファイル名を変更
Name fp & fo As fp & fn
End If
Next i

Exit Sub

ERR_HANDL:

Cells(i, 3).Value = _
"×" & Err.Description & ":" & Err.Number
Resume Next

End Sub

---------------

1)EXCELのバージョンは2010、2013、両方で試しましたが同じ症状でした。

2)仕事でフォルダー内にある大量のファイル名を変更するマクロが必要です。
マクロの基本、etc.はともかく、とりあえずこちらのマクロが機能するようにしたいです。
※連番作成ソフトと組み合わせて、このマクロをそのまま利用する予定です。

3)今、MOS-スペシャシストの勉強中です。合格後、エキスパートも受験予定です。なので、具体的な説明が無理でしたら、マクロの勉強(特にファイル名変更)について簡単なヒント、アドバイスでもOKです。

お手数ですが、説明の上手な方、よろしくお願いします。

Webサイト(http://bit.ly/1SszVqL)より、以下のサンプルのマクロをコピーして実行しました。ですが、「×ファイル名または番号が不正です。:52」というエラーで、マクロが機能しません。こちらのマクロのおかしいところを教えてください。詳細は下の通りです。

---------------

Sub A()

Dim fp As String
Dim i As Long
Dim fo As String
Dim fn As String

'パスを変数に格納
fp = Range("A1").Value & "\*.*"

On Error GoTo ERR_HANDL

Range("C4").Value =...続きを読む

Aベストアンサー

ポイント1

マクロの使用説明書通りに使用をしているか
・A1セルに変更したいファイル群の親フォルダのフルパスが記載されているか
・A5セル以降に変更前のファイル名が表示されている通りに記載されているか
・B5セル以降に変更後のファイル名を記載しているか

ポイント2
・A1セルに入力するフルパス名の最後には”¥”をつけない
・A5セル以降に入力するファイル名は、フォルダの内に表示されているとおりに入力されているか。
すなわち「拡張子を表示する」に設定している場合は拡張子を含めたファイル名を入力、そうでなければ、拡張子を省いたファイル名を入力

QExcel マクロでマクロを含んだファイルを作成保存する方法

main.xlsm にはいくつかのシートがあります。
その中にある sheetA というシートを独立したワークブックとして作成保存するマクロの作成についてです。作成されるワークブック内にマクロを含めて作成保存したいのですがやり方がわかりません。
不可能でしょうか。
可能であればやり方をお教え下さい。

以下の例ではmain.xlsm内にあるsheetAを新規ワークブックとしてコピーし、sheetA.xlsm というファイル名で保存するものです。
sheetA.xlsm ではファイルを閉じる前に「Good-bye」というメッセージを出す、というものです。

よろしくお願いします。


●main.xlsm内のコード
Sheets("sheetA").Copy
ActiveWorkbook.SaveAs Filename:="C:\test\sheetA.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close

●sheetA.xlsmのThisWorkbook内のコード
Private Sub Workbook_BeforeClose(Cancel As Boolean)
MsgBox ("Good-bye")
End Sub

main.xlsm にはいくつかのシートがあります。
その中にある sheetA というシートを独立したワークブックとして作成保存するマクロの作成についてです。作成されるワークブック内にマクロを含めて作成保存したいのですがやり方がわかりません。
不可能でしょうか。
可能であればやり方をお教え下さい。

以下の例ではmain.xlsm内にあるsheetAを新規ワークブックとしてコピーし、sheetA.xlsm というファイル名で保存するものです。
sheetA.xlsm ではファイルを閉じる前に「Good-bye」というメッセージを...続きを読む

Aベストアンサー

いくつか検討してみました。
大きく分けると二種類のコードになりますが、

標準Module に書かれたものを、再利用するものです。ThisWorkbook内のコードは、エクスポート/インポートすると、クラスモジュールになってしまいますので、そのコードを、活用するためには、もうひとつ別の起動用マクロが必要になってしまいます。それで、一般的には、標準Module 一本にするのが楽かと思います。

二番目は、趣向の強いもので、回答者としてのマナー違反だと言われかねないものです。(マナー違反を自覚しないで書いているわけではありません。しかし、これを他人の環境で人知れず実行するためには、もう一つ非公開の技術が必要です。)

私は、最初のほうのものをお勧めします。
どちらも、直接、マクロコードを触りますから、

 セキュリティセンターのマクロの設定で、
 開発者向けのマクロの設定
 レ VBAプロジェクトオブジェクトモデルへのアクセスを信頼する
 にはチェックが必要です。
(セキュリティのためには、会社などではここはオフにしておくのが一般的です)

'以下のコードは標準モジュールで、Module1 以外にしてください。
'//
Private Const myPATH As String = "C:\Users\[YourNamer]\My Documents\" '末尾には¥を入れてください。
Sub TestMacro1()
'ここでは、Module1 を使います。
Call ExportModule
Sheets("sheetA").Copy
Call ImportModule
'面倒でも、パスとファイル名は分かち書きしてください。
ActiveWorkbook.SaveAs Filename:=myPATH & "sheetA.xlsm", _
   FileFormat:=xlOpenXMLWorkbookMacroEnabled
'保存したので、Falseを入れてください。
ActiveWindow.Close SaveChanges:=False
End Sub

Sub ExportModule()
'エクスポート
 ThisWorkbook.VBProject.VBComponents.Item("Module1").Export _
 Filename:=myPATH & "tmp1.bas"
End Sub

Sub ImportModule()
'インポート
 With ActiveWorkbook
 .VBProject.VBComponents.Import _
 Filename:=myPATH & "tmp1.bas"
 End With
 Kill myPATH & "tmp1.bas"
End Sub
'------
Module1 は、以下のようになっているものとします。

'---------
Sub Auto_Close()
 MsgBox "Good-Bye!"
End Sub
'--------------

'//
Sub TestMacro2()
Const myPATH As String = "C:\Users\[YourName]\My Documents\" '末尾には¥を入れてください。

Sheets("sheetA").Copy
'直接マクロコードを書き込みます。
Call WritingMacroCodes
ActiveWorkbook.SaveAs Filename:=myPATH & "sheetA.xlsm", _
   FileFormat:=xlOpenXMLWorkbookMacroEnabled
ActiveWindow.Close SaveChanges:=False
End Sub

Sub WritingMacroCodes()
With ActiveWorkbook.VBProject.VBComponents.Item("ThisWorkbook").CodeModule
'マクロの 1 行目から 3 行目まで書き込みます。
 .InsertLines 1, "Private Sub Workbook_BeforeClose(Cancel As Boolean)"
 .InsertLines 2, " MsgBox ""Good-Bye!"""
 .InsertLines 3, "End Sub"
End With
End Sub
'///

いくつか検討してみました。
大きく分けると二種類のコードになりますが、

標準Module に書かれたものを、再利用するものです。ThisWorkbook内のコードは、エクスポート/インポートすると、クラスモジュールになってしまいますので、そのコードを、活用するためには、もうひとつ別の起動用マクロが必要になってしまいます。それで、一般的には、標準Module 一本にするのが楽かと思います。

二番目は、趣向の強いもので、回答者としてのマナー違反だと言われかねないものです。(マナー違反を自覚しないで書い...続きを読む


人気Q&Aランキング

おすすめ情報