質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

3回答

1171閲覧

[EXCEL VBA] シートの保護について

liner

総合スコア22

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2021/05/31 02:38

編集2021/05/31 04:18

こんにちわ。

EXCEL VBA にてあるマスターデータをシートに読み込み、別シートにてマスター検索⇒表示する
という機能を実装しようとしています。

読み込みの際、CSVデータを読み込んでシートに転機しているのですがデータを触らせたくありません。

そこで以下の手順を考えました。
※[Sheet1]はcsvデータの転記先

1.[Sheet1]を保護解除後、削除
2.[Sheet1]を作成
3.csvを読み込み
4.[Sheet1]に転記
5.[Sheet1]を保護
6.[Sheet1]を非表示

[Sheet1]の更新は繰り返し使用する為、1~6のような仕様にしています。

ここで質問です。

上記1~6のような仕様で問題はありますでしょうか?
より良い方法はありますでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/05/31 02:41

タイトルが質問タグを書いてるだけなので内容がありません。要件をタイトルとしてください。 あと、実際に組んでみたら問題があるかどうかわかるのでは。
liner

2021/05/31 02:54

ご指摘、ありがとうございます! 久しぶりにteratailを使用したものでやりかたを忘れておりました・・。 そうですね、実際組んでみたらわかるかもしれません。
m.ts10806

2021/05/31 03:04

質問は編集できますので。
Ta-tun

2021/05/31 03:07

登場するファイルとどういう処理の流れなのかを整理させてください。 ・マスターデータを保持しているCSV ・CSVを読み込むマクロがあるブック(読み込み専用シートのSheet1と検索用シートがある) 以下想像: 上記の設定であるとして、検索用シートに検索ボタンがあって毎回マスタデータを仕様1~6を行って検索
liner

2021/05/31 04:14

・マスターデータを保持しているCSV  はい、マスターデータを保持してるCSVデータがあります。 ・CSVを読み込むマクロがあるブック(読み込み専用シートのSheet1と検索用シートがある)  はい、おっしゃるとおりです。  唯一相違があるとすれば、検索用シートにCSVを読み込むマクロが設定されています。  ユーザーが行う操作の想定が仕切れず、困っている感じです><;
m.ts10806

2021/05/31 04:16

質問は編集できますので、タイトル含めて調整してください。 他の部分も含めて内容調整されない限り回答もまた変わりません。
liner

2021/05/31 04:18

あれ、編集したつもりが変わってないですね・・。 どうしたらいいんだろう(汗
liner

2021/05/31 04:19

あ、変更理由つければよかったんですね。 恐れ入りました。
m.ts10806

2021/05/31 04:20

投稿バグがあって途中で切れたり保存されなかったりはあります。 編集履歴がつくのでそちらを確認すれば良いです。
guest

回答3

0

上記1~6のような仕様で問題はありますでしょうか?

たぶん問題ないと思います!!

より良い方法はありますでしょうか?

1~2 はシート削除しなくてもクリアでいいのでは?と思いましたが、きっとどちらでも大丈夫です!

投稿2021/05/31 03:31

jinoji

総合スコア4592

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

liner

2021/05/31 04:17

回答ありがとうございます! 確かに、クリアでもよさそうですね! ユーザーが行う操作の想定ができず、消去してシートを作ってなんてやってます・・。 すべてを想定してたらきりがないので(ファイル消しちゃったらどうするんだ!とかw) ある程度のところで切り上げようと思いますw
guest

0

ひとに聞く前に、
まずは実際にそれで実装してみましょう

投稿2021/05/31 02:40

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

itagagaki

2021/05/31 03:07

間違えて回答に書いちゃいましたか?
y_waiwai

2021/05/31 03:12

いえ、これが回答ですよ 自分で実装しないと是非はわからないもんです
itagagaki

2021/05/31 03:42

それは意見であって質問への回答にはなっていないと思います。
y_waiwai

2021/05/31 03:55

というあなたの意見ですね ありがとうございます。 私の意見はまた違いますね
m.ts10806

2021/05/31 04:17 編集

itagagakiさん 過去回答確認されたらわかりますが、こういう人です。 目には目という感じですね。 何もやってない質問者に対する回答にはなってると思います。(それを投稿すべきかどうかは個人の気持ちの問題かなと) 何がアドバイスになるかは質問者にしかわかりませんから。 (もちろん意図と違ったアドバイスが来たからと自らを省みず回答者に噛みつく質問者は論外ですが)
guest

0

ベストアンサー

上記1~6のような仕様で問題はありますでしょうか?

大きな問題はないと思います。

強いて挙げるなら、「シートが Active な状態のため、シートの削除が失敗する」というケースが想定できますが・・・、「シート保護」に加えて「シートを非表示」にしているので、削除に失敗するケースは
発生しにくいと思います

より良い方法はありますでしょうか?

シートを何度も再利用されるのですから、削除ではなく clear してみてはいかがでしょうか。

clear メソッドが用意されています。

Sub test() Worksheets("Sheet1").Cells.Clear End Sub

CSV のデータ件数が多ければ多いほど、オブジェクトを削除→追加する動きにくらべて、処理のレスポンス向上が期待できます。

投稿2021/05/31 04:28

Yoshi88

総合スコア623

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

liner

2021/06/01 08:13

ご回答ありがとうございました! 実装できました!丁寧に教えていただいたのでベストアンサーにさせていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問