【ソフト名】PowerPoint VBA 連番スタンプ印字＆ログ記録ツール
【作者名】inosisibeyan
【取り扱い種別】フリーソフト（パブリックドメイン）
【動作環境】Windows環境（Microsoft PowerPoint 動作環境）

========================================================================

1. ソフトの概要
PowerPointのスライド上に貼り付けた写真や図面をクリックするだけで、「連番スタンプの配置」と「ログ（番号・日時・X/Y座標）のCSV自動記録」を同時に行うツールです。

写真のナンバリング、実験・観察データのコード化、アンケート回答時の関心・迷い（時間差）のログ解析など、実務・研究の幅広いシーンで活用できます。
※ソースコードおよび開発に使用したAIプロンプトはすべてオープン（無料公開）しています。


2. 取り扱い種別・価格
フリーソフト（無料）
※改変・商用利用・再配布も自由です。


3. 動作環境
・対応OS: Windows 10 / 11
・必要ソフト: Microsoft PowerPoint（VBAマクロ実行可能環境）


4. インストール・アンインストール方法
【インストール】
特別なインストーラーは不要です。ダウンロードしたファイル（または本テキスト記載のVBAコードを組み込んだ.pptmファイル）を任意のフォルダに保存してご使用ください。

【アンインストール】
レジストリ等は使用しておりません。ダウンロードしたファイルおよび生成された「stamp_log.csv」を削除するだけで完了します。


5. 作者への連絡先
ご意見・ご要望・不具合のご報告は、以下のいずれかよりお願いいたします。

・（お問い合わせ）メールアドレス：kawabe1243@aichi-c.ed.jp
・ブログ： https://inosisib.exblog.jp/

6. 初回準備・設定方法（後述のソースコードを貼り付けて利用する場合での、確実に動作させる必須項目です。）
（※同封の実行可能ファイルを開く場合は、「7. 基本的な使い方」へ進んでください。）

本ツールを正常動作させるため、初回のみ以下の準備を行ってください。

(1) マクロ有効化形式（.pptm）で保存する
PowerPointで本マクロのモジュールを読み込ませたら、必ず 「PowerPoint マクロ有効プレゼンテーション（*.pptm）」 形式でファイルを任意の場所に保存してください。※ファイルが未保存の状態だとログファイル（CSV）が生成できないため、必ず一度保存を行ってから実行してください

(2) キャンバス（クリック判定用図形）を配置する
・スライド上に長方形などの図形を描画し、オブジェクトの選択と表示（P）で名称を「canvas」に変更します。
・使用時はその「canvas」に下地にしたい写真や絵をスライドに貼り付けます。（canvasに貼り付けか、別の枠を重ねるかは自由です。重ねる場合はcanvasを最前列に指定してください。）
・長方形の図形（canvas）を右クリックし、「挿入」メニュー ＞「動作」 を選択します。
・「マウスのクリック」タブで「マクロの実行」にチェックを入れ、一覧から StampWithLog を指定して「OK」を押します。
※これにより、この図形をクリックするたびにマクロが起動します。


7. 基本的な使い方
【スタンプ配置＆自動ログ記録】
1. スライドショーを実行（F5キーなど）します。
2. キャンバスに写真・図形を貼り付け、記録したい場所をクリックします。
3. クリックした場所に「連番付きの赤円スタンプ」が印字されます。
4. 同時に、PowerPointファイルと同じフォルダ内に「stamp_log.csv」が自動作成（追記）され、「番号, 日時, X座標, Y座標」が記録されます。

【印刷やファイル共有】
スタンプを押し終わった後の印刷やPDF化などは、PowerPointの基本機能（「ファイル」→「印刷」や「名前を付けて保存」）をご利用ください。


8. 修正・削除・やり直し（リセット）手順
【押し直したい・スタンプを削除したい場合】
スライド編集画面に戻り、削除したいスタンプ（図形）を選択して Deleteキー や 切り取り（Ctrl + X） で削除してください。
スライド上のスタンプや絵をすべて消したい場合は、Ctrl+Xで別に「canvas」オブジェクトを切り取り、Ctrl + A（すべて選択） を押してから Deleteキー でまとめて削除後、Ctrl+Vで「canvas」オブジェクトを貼り付けると復活が速いです。

【カウント（連番）を「1」からやり直したい場合】（連番スタンプ側）
開発タブやマクロ一覧から ResetStampCount を実行してください。
カウント変数がリセットされ、次回クリック時から再び「1」からスタンプが押されます。この時、ログファイルには古いデータは残ったままなので同期など考慮した上、新旧連番のデータ取り扱いには注意してください。ログファイルも新規としたい場合は、後述の12. ライセンス・免責事項、「注意点：」を参考にして下さい。


9. 開発背景・エピソード
本ツールは、Microsoft Copilot Professionalと約半日間の壁打ちを行って「イメージを完璧に伝えるプロンプト」を作成し、それをGeminiに入力したところ、実装し動作までわずか5分（一発）で自動生成されたコードがベースとなっています。
生成AIを活用した業務ツール開発の実例としてもご活用いただけるよう、開発に使用したプロンプト全文を以下に公開しています。


10. 公開情報（プロンプト ＆ VBAソースコード）
■ 使用したAIプロンプト
前に、パワポでスタンプするお絵かきソフト作ったんだけど、それの応用でスタンプを連番でカウント出来るのって同じマクロの応用で出来ると思ったけどどうかな？さらに、そのカウントした座標と時間も記録残せると応用範囲が広がると思っているんだけど実装出来るかな？

■ VBAソースコード（標準モジュール／Module1に貼り付けて使用）
------------------------------------------------------------------
Option Explicit

#If VBA7 Then
    Private Declare PtrSafe Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
#Else
    Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
#End If

Private Type POINTAPI
    X As Long
    Y As Long
End Type

Public stampCount As Long

Sub StampWithLog(ByRef shp As Shape)
    Dim pt As POINTAPI
    Dim timeStamp As String
    Dim logPath As String
    Dim fileNum As Integer
    Dim activeSlide As Slide
    Dim newStamp As Shape
    
    stampCount = stampCount + 1
    timeStamp = Format(Now, "yyyy/mm/dd hh:nn:ss")
    GetCursorPos pt
    
    Set activeSlide = SlideShowWindows(1).View.Slide
    Set newStamp = activeSlide.Shapes.AddShape(msoShapeOval, pt.X / 2, pt.Y / 2, 30, 30)
    
    With newStamp
        .Fill.ForeColor.RGB = RGB(255, 50, 50)
        .Line.Color.RGB = RGB(255, 255, 255)
        .TextFrame.TextRange.Text = CStr(stampCount)
        .TextFrame.TextRange.Font.Size = 14
        .TextFrame.TextRange.Font.Bold = msoTrue
    End With
    
    logPath = ActivePresentation.Path & "\stamp_log.csv"
    fileNum = FreeFile
    
    Open logPath For Append As #fileNum
    Print #fileNum, stampCount & "," & timeStamp & "," & pt.X & "," & pt.Y
    Close #fileNum
End Sub

Sub ResetStampCount()
    stampCount = 0
    MsgBox "スタンプのカウントをリセットしました。", vbInformation
End Sub
------------------------------------------------------------------


11. 今後のアップデート予定
ログ記録をもとに、後からスタンプの打刻プロセスを再生表示する「再生版」を近々公開予定です。
注：再生に近いものとしては、作成された「連番付き画像」と「ログファイル」の両方をAIにアップロードして頂くと、かなりの確率で解析可能なようです。お急ぎの方はお試しください。その際は、連番の意味・意図も必要な情報だとうちのコパイロットプレミアムは申しております。

12. ライセンス・免責事項
・ライセンス: パブリックドメインソフト（改変・商用利用・再配布可）
・注意点: 同一階層の stamp_log.csv に逐次ログが追記されます。完全に新しい記録を取りたい場合は、CSVファイルを別名保存するか、必要に応じてバックアップを取った上で削除してご使用ください。
・免責事項: 本ソフトウェアは作者の著作権放棄によりパブリックドメインとして公開します。無保証であり、利用により生じたいかなる損害についても作者は責任を負いません。