• ベストアンサー

EXCEL VBA 保護したシートを読込みしたい

お世話になります。 EXCEL VBAで「データ」というシートあります。ここの100件ほどのデータが入っており、もう1つの「集計」というシートにフォームを作成してそのフォームからVBAを使って集計するのですが、この「データ」シートはユーザーにいじられたくないので保護もしくは非表示にしたいと思っています。 しかし「データ」シートを保護してしまうとVBAで「データ」シート読み込む際にエラーになってしまいます。 何かよい方法はありますでしょうか? 環境 WindowsXP SP3 Excel2003

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

  • ベストアンサー
  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

VBAでデータをデータシートから取り込む際にデータシートの保護を一旦解除して、操作の終了段階で再びデータシートを保護する操作をVBAで行うことです。 Worksheets("データ").Unprotect Password::="1234" Worksheets("データ").Protect Password::="1234"

yakkun2338
質問者

お礼

KURUMITOさん、早速のご連絡ありがとうございました! 出来ました!! ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCEL VBA 別シートへデータ集計

    お世話になります。 EXCEL VBAを使って下記のことを実現したいです。 [やりたいこと] [データ]シートに社員情報が4人分入っています。(本当は可変です) [データ]シートに"集計"というボタンを作ってクリックするとVBAが動いて[集計]という シートにデータを集計したいのです。この[集計]シートのフォームが少し変わっていて一人に つき3行使用します。次の人はまた3行、また次の人は3行と繰り返していきたいのです。 上記やりたい事を画像にもしてみました。 上記動作を実現するVBAコードをどなたかご教授いただけませんでしょうか? 何卒よろしくお願い致します。 環境 EXCEL 2017 Win7

  • VBA シート毎にユーザーフォームを作成する方法

    VBAの初心者です。記載内容に不備があるかもしれませんが、ご了承下さいませ。 エクセルのシート毎に異なったデータを簡単に入力したいと思っています。それをVBAを使って作成したいのですが、シート毎のユーザーフォーム作成方法(オブジェクトのWorksheetやモジュールの記載内容など)がわかりません。一つのシートに対しては、なんとかユーザーフォームを作成でき、データ集計できています。 ネットで検索しても、思い通りのサイトが見つかりませんでしたので、質問させていただきます。 教えて下さい。宜しく御願い致します。

  • ExcelでVBAにおけるシートの保護に関して・・・

    ユーザーフォームで入力した値がシートのセルに入力 されるというものを作っています。 そこで、シートの列挿入及び列削除を禁止しておきたい のですが、そのままシートを保護してしまうとユーザー フォームが開かなくなるので、VBAにてユーザーフォーム が開く前に保護を解除し、閉じるときに再び保護をかける ようにしました。 ただ、この方法だと、シート保護の項目全て(初期設定) に対して保護されてしまうため、例えば行挿入や行削除、 あるいはオートフィルタや並べ替えといったことまでが 出来なくなってしまいます。(手動で保護を解除すれば できるのですが、一々解除しなければならないのは面倒 なので何とか避けたいのです。) 禁止したいのは、列削除及び列挿入のみなのですが、 他によい方法はないでしょうか。

  • Excel シートの保護 VBA

    「データ」、「A」という名称の2つのシートを ブック起動時にパスワードつきで保護したいと考えています。 また、マクロ(VBAのフォーム?)のみで更新できるようにしたいとも考えています。 Dim sheet1 As Worksheet Set sheet1 = Worksheets("データ") sheet1.Protect Password:="pass", _ AllowFormattingCells:=True 上記のやり方があると見たので、 ThisWorkBookに貼り付けて保存し、再起動してみたのですが 普通に、「データ」のシートに書き込めてしまいます。 何もエラーも出ないため、どう考えればよいのかも分かりません。 回答よろしくお願い致します。

  • EXCEL VBA フォームにメッセージ出力

    お世話になります。 以前にも似たような質問をさせていただきましたが、再度EXCEL VBAのフォームにメッセージを出力する件で質問させていただきます。 下記のVBAはA支店、B支店、C支店のデータを集計する処理なのですが、この処理の途中経過をユーザーに知らせるためにフォームを表示しています。 フォームの真ん中にメッセージ出力する領域としてLabel_Statusという名前で"ラベル"を作成しました。 このラベルにメッセージを表示することは前回ご教授いただきまして実現することができました。 実際に動かしますと "集計完了!"とだけ出てしまい、途中経過の"データ集計中(A支店)・・"が出力されないのです。なぜでしょうか? 以下がVBAです Me.Label_Status.Caption = "データ集計中(A支店)・・" --A支店集計処理-- Me.Label_Status.Caption ="データ集計中(B支店)・・" --B支店集計処理-- Me.Label_Status.Caption = "データ集計中(C支店)・・" --C支店集計処理-- Me.Label_Status.Caption = "集計完了!" ←このメッセージだけが出力されてしまいます VBAここまで 環境 Windows XP SP3 EXCEL2003 以上です。どなたかご教授いただけませんでしょうか?

  • ExcelのVBA

    Excelで、データベースを作成したいと思っています。 新規レコード入力時に、ユーザーフォームを使って入力したいのですが、 ユーザーフォームに入力したデータを、新規レコードとしてシートに保存する方法を教えて下さい。 例えば、住所録で10件のデータが入力されている。 新しい住所データをフォームを使って入力し、指定のボタンをクリックすれば、 11件目としてシートの最後尾(11番目)に保存される。 といった具合です。

  • エクセルシートのコピーとシート名の変更&集計表

    エクセルの集計に関して初心者です。1シートに同じ内容で各顧客のデータを同じフォームで入力しています。これを新しい顧客が出てくるたびにシートコピーしているのですが、VBAでボタンでコピーできるようにしたいです。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.55.37.jpg さらにこれらの各シートの内容を集計表で一覧にしたいのですが、良い関数もしくはVBAでの転記方法をお教えください。 /Users/inouehirotaka/Desktop/スクリーンショット 0030-09-17 11.56.28.jpg 色々VBAで試してみたのですが、どうもうまくいきません。ご教授よろしくお願いいたします。

  • エクセルVBA シートの保護について

    EXCEL2003 OS:XP お世話になります。 エクセルVBAを使い、列の表示・非表示の機能を使えないように制限をかけたいと思います。 シートの保護であるPROTECTメソッドを使うとできるようですが、 これだと列幅の調整もできなくなってしまいます。 AllowFormattingRows = false 列幅の調整は可能なままとして、列の表示・非表示のみ使えなくするような制限は可能でしょうか? 宜しくお願い致します。

  • シートの保護、グラフ作成

    お世話になります。 Excelでアンケートの集計をしています。 別のシートに集計データを参照しました。そこにマクロの記録で、グラフを作成するマクロを作成しました。また、このマクロを登録したボタンを配置しています。 このシートに、「シートの保護」を設定しました。 その後、マクロボタンをクリックすると別添のメッセージが表示され、グラフは作成できません。 確かに、「挿入」タブのリボンは、グレーアウトしています。 「シートの保護」を設定した後も、ボタンからグラフを作成する方法はないでしょうか。 よろしくお願いします。 エラーメッセージ 「実行時エラー”1004”」 「指定された値は境界を超えています。」 OS: Windows 7 professional SP-1 32Bit Office: 2010 Professional 32Bit

  • VBAエクセルのフォームについて

    お世話になっております。 VBAエクセルのフォームについて教えていただきたいのです。 VBAで入力のフォームを作ったのですが(TEXT BOXが4つ、コマンドボタン1つ、コマンドボタンを押したときに登録される用にしたい) 各シートの集計にしたい為、各シート(31のシートがあります)に入力フォームがあります、その各シートでの入力結果を1つのシートに 集計したいのですが、どの様なコードにしたらようか判りません。 素人のためお手数ですが、なるべく判りやすくお願いします。 よろしくお願いします。

このQ&Aのポイント
  • ScanSnap iX1500を使用して、文庫本を200冊程度スキャンし、PDF化しました。
  • 最近、メモリ不足のエラーが発生し、取り込んだPDFを別のハードディスクに保存しましたが、スキャン量が減少し、ついには一冊もスキャンできなくなりました。
  • 空き容量がほとんどなくなっているため、PDFの保存先以外に別の場所にスキャン情報が蓄積されている可能性があります。
回答を見る

専門家に質問してみよう