vbaを使用して共有Excelファイルの行/列表示オプションを無効にする方法


1

私は共有Excelファイルを持っているので、一度に複数の人で作業する必要があります。 このファイルには、ユーザー名に基づいて特定の列を隠すマクロがいくつか含まれています。

  • 1)ユーザー名を確認する
  • 2)列A、B、Cを非表示にする(特定のユーザー用)

列が「制限された」ユーザーのために非表示にされたら、マウスを右クリックして「非表示」を選択することによってユーザーが列を非表示にできないようにします。マクロを使用してシートを保護/保護解除することはできません( - >共有ファイルなので、エラー1004がスローされます)。 Excelのツールバーを使ってシートを保護することもできません(シートをマクロで隠したり隠したりしても、保護されたシートは保護されません)。

要約する:

共有ファイル - >保護されていないシート(prb:ユーザーは隠し列を隠すことができます)

共有ファイル - >保護シート(prb:マクロを使用して列を隠すことはできません)

だから私は考えている、私はシートを保護する必要はありません。列が非表示になったら、ユーザーがそれらを非表示にできないようにします。どのようにそれをするのかの任意のアイデア?

おそらく、ユーザー制御などを無効にします。私はvbaにはあまり慣れていません。

任意のヒントや提案は大歓迎です。

ありがとうございました!


そのデータを他のシートに保存できれば、 .visible=xlVeryHidden 右クリックメニューからシートが隠れないようにする
SeanC

回答:


0

@Seanは、隠しデータを別のシートに入れることを述べました。これも私の最初の考えでした。

私が考えたのは、現在のユーザーをチェックして列を非表示にしてから保護をオンにする自動オープンマクロを使用することです。 VBAコードはパスワードを必要とするので、最も安全ではありませんが、それは他の問題を回避します。パスワードを埋め込む問題を減らすコードを保護することもできます。

以前は、非表示にする必要がある部分を含む複雑なワークブックを作成したときに、personal.xlsに適切な部分のロック/ロック解除と非表示/非表示を支援するマクロがいくつかありました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.