• ベストアンサー

エクセル 変更履歴の記録について

エクセルで変更履歴の記録をする場合、ブックを共有にする必要がありますが、共有にするとマクロの編集等ができなくなります。マクロの編集等をするため共有を解除すると変更履歴が消えてしまいます。 ブックの共有を解除しても履歴を保持する方法がありましたら教えてください。 もしくはVBAで、ワークシートに変更箇所が生じた場合、セルのコメントに変更履歴に準じて「変更したユーザー」「変更日時」「変更前セル内容」を自動的に表示させる方法があれば教えてください。 (行・列の挿入・削除には対応してなくても、セルの変更だけでも結構です) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

質問後半の問題 Sheet1のシートモジュールに Dim w Private Sub Worksheet_Change(ByVal Target As Range) Set buf = Target.Comment If TypeName(buf) = "Comment" Then MsgBox "セルにはコメントがあります" Target.Comment.Text Text:=Str(Date) & Chr(10) & _ Application.UserName & Chr(10) & w Else MsgBox "セルにはコメントがありません" Target.AddComment Str(Date) & Chr(10) & _ Application.UserName & Chr(10) & w End If End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) w = Target End Sub イベント・プロを使ってますので、操作によっては、予想外のことが 起こるかもしれませんが、普通の操作ではOKのようです。 テストが終わったら、「 MsgBox "セルにはコメントがありません」(他1箇所)は削除のこと。

kkaazzuu
質問者

補足

早速ありがとうございます だいたいやりたいことはこれで出来たのですが (1)行・列の挿入、削除をすると「実行時エラー(13)型が一致しません」が出ます。エラーを出さない処理は出来ますでしょうか (2)複数セルのコピペをすると実行時エラー(5)プロシージャの呼出または引数が不正です」が出るのと、コメントが挿入されません。エラー処理の方法、複数セル(BOX状)のコピペの場合でもコメントをつけることは出来ないでしょうか よろしくお願いします

その他の回答 (1)

  • Ryokucha
  • ベストアンサー率25% (115/450)
回答No.1

個人間のパソコンでの管理では難しいのではないでしょうか。 Windows Server 2003から付いているアクティブディレクトリ機能を使うのが、一般的かと思います

kkaazzuu
質問者

お礼

やっぱり無理でしたか ブックを共有するのが目的ではなく、変更履歴を 残しておきたいだけなのですが VBAで処理するしかないようですね ありがとうございました

関連するQ&A