回答:
Wordの[開発]タブを使用して、ドキュメントに埋め込まれたVisual Basicルーチンに簡単にアクセスできるようにすることで、ドキュメント内のすべてのマクロを確認できます。
最初に、開発者タブが有効になっていることを確認する必要があります。[ファイル]-> [オプション]に移動し、次の操作を行います。
表示される[開発]タブに、[Visual Basic]ボタンがあり、クリックしてVisual Basicエディターにアクセスできます。
エディターの左側にあるドキュメントツリーを参照すると、最初にマクロを有効にする必要なく、ドキュメントに埋め込まれているすべてのコードとモジュールが表示されます。
私は、信頼していないドキュメントでこれを行う傾向があります。
注:Wordでこれを実行しましたが、Excelでも同じ機能を使用でき、有効にするオプションは同じ場所にあります。
MokubaiとhBy2Pyからの回答は素晴らしく、実際にVBAエディターを表示できますが、少なくともMicrosoft Office Professional Plus 2016の Excel ではコードを表示できません。
私はたまたまそのバージョンを所有しており、悪意のあるXLSを受け取ったので、検査したいと思っていました。Excelで開いた後、通常どおりセーフモードで開きました。もちろん、そのモードを終了するつもりはありませんでした。他の回答者が示したようにVBA Editorを開くと、... empty VBA Editorが表示されました。XLSファイルをまだ閉じていないにもかかわらず、「プロジェクトエクスプローラ」パネルに「開いているプロジェクトはありません」と表示されます。テストのためだけに、2番目のドキュメント(私の作品の1つ)を開いたところ、すぐにVBA Editorに表示され、(適切に)VBAがまったくありませんでした。ただし、インターネットからのドキュメントはVBA Editorにリストされていません。
なぜそうなのかを理解しようとして時間を無駄にしましたが、理由は見つかりませんでした。ドキュメントがセーフモードで読み込まれると、ExcelエディションはVBAエディターにVBAモジュールを送信しないようです。残念ながら、VBA Editorには「OfficeドキュメントからVBAを開く」機能が欠けているため、ここでExcelが頭脳であり、最初にXLSを解凍/デコードする必要があることは明らかです。
解決策は非常に簡単であることが判明しました。
Ribbon
-> Developer
->MacroSecurity
File
-> Options
-> SecurityCenter
(最後のオプショングループ)-> Settings
-> Macros
)効果:
好奇心が強い場合:はい、確かに悪意のある小さな例です:
Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e " + "/c" + numneroop + amagilocard
End Function
'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub
ところで。ご覧のとおり、マクロを後で実行できるように、エントリポイントをすぐにコメントアウトしてドキュメントを再保存しました。
Alt
+F11
によって! SECURITY WARNING ... Enable Content
バナーが" "消えることがあり、コードの実行が有効になっていることを意味します。これは誤解を招きます。これをデモするには、on_open()
モジュールを含むドキュメントを作成します。イベントを発生させることなく、コードをAlt
+F11
インインして検査できます。