安さ気ままに時には無料をめざし

安さ気ままに時には無料をめざし

PR

×

プロフィール

iris9_s

iris9_s

カレンダー

コメント新着

コメントに書き込みはありません。

キーワードサーチ

▼キーワード検索

2025.09.14
XML
カテゴリ: カテゴリ未分類




Excelファイルを使っていると、「他人にコピーされて勝手に中身を見られたくない」という場面があります。
そこで今回は、Excel VBAで特定のユーザー名のみ利用可能にし、さらにマクロ無効時も自動で閉じる仕組みを備忘録として残しておきます。

◆ ポイント
1.特定のユーザー名以外では即閉じる
2.マクロが無効な場合も警告を出して閉じる(実質的に利用不可にする)

■ マクロ有効時のユーザー認証
以下のコードを ThisWorkbook に貼り付けます。(手順は別途下に記載)
Windows のユーザー名を取得し、設定したユーザー以外で開かれたら即閉じます。

【VBAコード】


  Dim currentUser As String
  Dim allowedUser As String

  ' ここに自分のWindowsユーザー名を入力してください
  allowedUser = "自分のユーザー名"

  currentUser = Environ("USERNAME")

  If StrComp(currentUser, allowedUser, vbTextCompare) <> 0 Then
    MsgBox "このファイルを開く権限がありません。", vbCritical
    ThisWorkbook.Close SaveChanges:=False
  End If
End Sub


■ マクロ無効時に自動で閉じる仕組み

そこで、警告シートを使って「マクロ無効ならそのまま警告表示 → 閉じる」という方法を組み込みます。

手順
1.任意のシート(例:Sheet1)の A1セルに「マクロを有効にしてください」などの警告文を記載しておく
2.下記のコードを ThisWorkbook に追加 (手順は別途下に記載)

【VBAコード】

  Dim currentUser As String
  Dim allowedUser As String

  ' ここに自分のWindowsユーザー名を入力してください
  allowedUser = "自分のユーザー名"
  currentUser = Environ("USERNAME")

  ' マクロ有効時に警告シートを非表示
  On Error Resume Next
  Sheets("Sheet1").Visible = xlSheetVeryHidden
  On Error GoTo 0

  ' 認証失敗なら即閉じる
  If StrComp(currentUser, allowedUser, vbTextCompare) <> 0 Then
    MsgBox "このファイルを開く権限がありません。", vbCritical
    ThisWorkbook.Close SaveChanges:=False
  End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
  ' 閉じる前に警告シートを再表示(マクロ無効時に警告を残すため)
  On Error Resume Next
  Sheets("Sheet1").Visible = xlSheetVisible
  On Error GoTo 0
End Sub


■ 挙動
・マクロ有効時:認証ユーザーなら警告シートが非表示になり、通常利用可能
・マクロ無効時:警告シートが表示されたままになり、実質的に利用不可

■ 注意点(Windows環境)
・Environ("USERNAME") は Windows OS のログイン名を取得します
・ご利用環境のユーザー名を確認して設定してください
・必ず「マクロ有効ブック(.xlsm形式)」で保存(通常の .xlsx では VBA が保存されない)
・動作確認済み:Windows 10 / 11 + Office 2016より前の古いOfficeでは xlSheetVeryHidden が利用できない場合があります

■VBAコードの貼り付け手順
1.Excelファイルを開く
2.キーボードで Alt + F11 を押す
 → Visual Basic for Applications(VBE)が開きます
3.左側の「プロジェクト」ウィンドウから、対象のブックを探します
 (例:VBAProject(Book1.xlsm)など)
4.その中にある ThisWorkbook をダブルクリックします
5.右側にコードを書く画面が開くので、そこに先ほどのコードをそのまま貼り付けます
6.保存して閉じます(ショートカットは Ctrl + S)
7.Excelに戻り、いったんファイルを閉じて再度開きます
これで、ファイルを開いたときに自動で認証や警告が動作。

■ まとめ
・Excel VBAでユーザー認証を行い、許可したユーザー以外は即閉じる
・マクロ無効時も警告シートで強制的に使えなくする
・これで、ある程度のセキュリティを確保できます。
・完全な情報保護ではありませんが、コピー対策・不正利用防止の一歩になります。







​
光触媒より便利な『CT触媒フェイクグリーン エクリア』( 卓上 ミニ 消臭 空気清浄 防臭 防汚 抗菌 おしゃれ リアル インテリア ガラス瓶 多肉植物 寄せ植え トイレ 玄関 造花 人工観葉植物 置物 アーティフィシャルグリーン プレゼント おすすめ ) ​

au PAY マーケット






お気に入りの記事を「いいね!」で応援しよう

最終更新日  2025.09.14 15:05:46
コメントを書く


■コメント

お名前
タイトル
メッセージ
画像認証
上の画像で表示されている数字を入力して下さい。


利用規約 に同意してコメントを
※コメントに関するよくある質問は、 こちら をご確認ください。


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
Design a Mobile Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: