StandardGraph.xlsm リスクアセスメント

1. 目的

本書は、研究室内で利用している Excel マクロブック StandardGraph.xlsm を外部配布または公開する際に、受領者・利用者・管理者に対して、想定されるリスクとその確認結果を明示するための文書である。

本ファイルの主目的は、Excel グラフを学会発表・論文投稿向けの体裁に整形することである。


2. 対象ファイル

  • ファイル名: StandardGraph.xlsm

  • 形式: Excel Macro-Enabled Workbook (.xlsm)

  • 主用途: グラフ整形、ラベル付与、書式統一、図のコピー補助


3. 想定利用者

  • 研究室の学生

  • 教員

  • 共同研究者

  • 学会発表・論文作成のために本テンプレートを利用する外部ユーザー


4. リスクアセスメントの前提

.xlsm ファイルは VBA マクロを含むため、一般に以下のような懸念がある。

  • 自動実行マクロによる意図しない処理

  • ファイルの作成・削除・改変

  • OS コマンド実行

  • 外部プログラム起動

  • 外部サーバーへの通信

  • 個人情報・機密情報の送信

  • 参照設定や外部アドイン依存による不安定動作

本評価では、抽出した VBA コードを確認し、主として以下の観点からリスクを確認した。

  1. 自動実行の有無

  2. 外部通信の有無

  3. OS コマンド実行の有無

  4. ファイル操作の有無

  5. 利用者データ改変の可能性

  6. 保守性・説明可能性


5. 確認方法

以下の手順で確認を行う。

5.1 VBA コード抽出

  • olevba などのツールで .xlsm から VBA ソースコードを抽出する。

  • 標準モジュール、クラスモジュール、フォーム、ThisWorkbook、各 Worksheet のコードを確認する。

5.2 危険操作キーワードの確認

以下のような代表的危険操作を検索対象とする。

  • Shell

  • CreateObject

  • WScript.Shell

  • PowerShell

  • Kill

  • Open

  • Write

  • Put

  • FileSystemObject

  • XMLHTTP

  • WinHttpRequest

  • URLDownloadToFile

  • ADODB.Stream

  • Auto_Open

  • Workbook_Open

  • Document_Open

5.3 イベントコードの確認

  • ThisWorkbook

  • Worksheet

  • フォームイベント

において、自動実行・隠れた処理がないかを確認する。

5.4 手動レビュー

主要マクロについて、用途と入出力、シートやチャートへの影響範囲を確認する。


6. 確認結果の要約

6.1 総合評価

本ファイルは、確認できた範囲では、主にグラフ整形を目的とするローカルな作図支援マクロ集であり、高リスクな挙動は確認されなかった。

推定されるリスク水準は、研究室配布用マクロとしては 低リスク に分類できる。

6.2 主な根拠

  • グラフ整形・ラベル追加・線幅変更・凡例位置調整などが主機能である。

  • Shell や外部実行系の処理は確認されなかった。

  • HTTP 通信、Web アクセス、メール送信などの外部通信処理は確認されなかった。

  • ファイル削除や大量ファイル操作のような危険な処理は確認されなかった。

  • Worksheet_SelectionChange などのイベントプロシージャは実質空であり、自動的に危険処理が走る構造は確認されなかった。


7. リスク項目別評価

項目

評価

コメント

自動実行マクロ

明確な危険な自動実行処理は確認されていない

外部通信

HTTP/FTP/メール送信などの処理は確認されていない

OS コマンド実行

Shell などの実行処理は確認されていない

ファイル削除・改変

危険なファイル操作は確認されていない

Excel オブジェクト変更

グラフ・ラベル・軸などの書式は変更する

誤操作による書式変更

ユーザーが意図しないチャートに適用する可能性はある

可読性・説明性

命名ゆれや整理不足があり、保守性改善の余地がある


8. 想定される残留リスク

高リスクな処理が見当たらなくても、.xlsm である以上、以下の残留リスクは残る。

8.1 マクロ有効化そのものへの心理的障壁

外部配布時、受領者は「マクロを有効化してよいか」を慎重に判断する必要がある。コードが安全であっても、.xlsm 形式であるだけで警戒されやすい。

8.2 書式変更の不可逆性

本ファイルはチャートや系列の見た目を変更するため、誤った対象に実行すると元の体裁が失われる可能性がある。

8.3 Excel バージョン差異

  • Windows / Mac 差

  • Microsoft 365 / 永続版差

  • 日本語版 / 英語版差

により、一部機能や見た目が異なる可能性がある。

8.4 名前付きセルや前提レイアウト依存

xmin, xmax, ymin, ymax, width, height などの名前付きセルに依存する処理がある場合、テンプレートの前提が崩れると正常動作しない可能性がある。

8.5 保守上のリスク

現時点では機能追加を重ねた構造に見え、以下のような小さな不整合が保守リスクになりうる。

  • FontSize / fontsize などの命名ゆれ

  • 関数戻り値代入や参照先の不統一

  • 関数名と実処理内容の対応が直感的でない箇所


9. 外部公開時の推奨対応

9.1 最低限の同梱文書

配布時には、少なくとも以下を同梱することが望ましい。

  • 使用説明書

  • マクロ機能一覧

  • 本リスクアセスメント

  • 更新履歴

9.2 利用者への明示事項

以下のような説明を README 等に明記するとよい。

本ファイルのマクロは、Excel グラフの書式整形を目的としています。
外部通信、OS コマンド実行、ファイル削除を行う処理は含みません。
ただし、グラフやラベルの書式は変更するため、必要に応じてバックアップを取ってから使用してください。

9.3 公開前の確認フロー

推奨フローは以下の通りである。

  1. VBA コード抽出

  2. 危険キーワード機械検索

  3. 手動レビュー

  4. 別環境での動作確認

  5. README / 使用説明書 / リスクアセスメント添付

  6. 版番号を付けて公開

9.4 可能なら実施したい対策

  • VBA プロジェクトの整理とコメント追加

  • モジュール・関数命名の統一

  • 公開版ごとの changelog 整備

  • 機能別テスト手順の作成

  • 必要ならマクロ署名の導入


10. 公開可否の判断

現時点の確認結果に基づけば、StandardGraph.xlsm は、用途を明示し、説明書とともに配布する前提で、研究教育目的の外部公開が可能な水準 と判断できる。

ただし、以下を条件とする。

  • 利用前にバックアップ取得を推奨すること

  • マクロがグラフやラベルの書式を変更することを明記すること

  • 公開版では使用説明書と更新履歴を添付すること


11. 公開ページ用の短い説明文例

例1: 短い説明

StandardGraph.xlsm は、Excel グラフを学会発表・論文投稿向けに整形するためのマクロテンプレートです。
グラフの軸、ラベル、凡例、線幅、フォント、コピー操作などを補助します。
確認した範囲では、外部通信、OS コマンド実行、ファイル削除を行う処理は含んでいません。

例2: 注意書き付き説明

本ファイルは VBA マクロを含む .xlsm 形式です。
マクロは主にグラフ整形を行い、チャートやラベルの書式を変更します。
利用前に元データのバックアップを推奨します。


12. 今後の改善候補

  • 機能ごとにモジュールを再整理する

  • 関数名・変数名・名前付きセル名を統一する

  • エラー時のメッセージを改善する

  • 「適用対象の確認ダイアログ」を導入する

  • 「元に戻す」支援やバックアップ複製機能を検討する

  • セキュリティ観点のチェックリストを定例化する


13. チェックリスト

配布前チェックに使う簡易チェックリストを以下に示す。

  • [ ] VBA を抽出して確認した

  • [ ] Shell / CreateObject / 通信系 API の有無を確認した

  • [ ] Workbook_Open などの自動実行イベントを確認した

  • [ ] 別環境で動作確認した

  • [ ] 使用説明書を同梱した

  • [ ] 本リスクアセスメントを更新した

  • [ ] 更新履歴を記録した

  • [ ] 配布版の版番号を付けた


14. 免責と限界

本評価は、抽出可能な VBA コードと通常の手動レビューに基づくものであり、すべての潜在的リスクを完全保証するものではない。
ただし、研究室配布・教育利用を前提とした一次的な安全確認および説明責任の補助資料として有用である。