解決済

VBAでシートコピー時の使い勝手で悩んでします。

営業で販売実績などに関わる資料をVBAで作成しのですが、わかりづらいので修正したいためアドバイスなどいただけないでしょうか。
まずどんなものを作成したかといいますと四半期ごとにある販売実績報告会議での資料作成用Bookです。
●シートのトップはただのシート作成ボタンがあるページです。
(実績作成TOP)という名のシート
●シート2枚目は各ページにいけるように目次のページです。
(シート選択)という名のシート
●シート3枚目は実績入力の”テンプレート”です。
(実績入力)という名のシート
●シート4枚目は上司提出用の”テンプレート”です。
(実績報告)という名のシート

使い方として例えば今月4月に「実績作成TOP」にあるコマンドボタンを押すこ
とで「シート選択」に「200801実績入力」「200802実績入力」「200803実績入
力」「200801実績報告」「200802実績報告」」「200803実績報告」のハイパー
リンクを作成します。
それと同時に上記の名前のシートをテンプレートよりコピーをし名前を振りま
す。
その後入力の使い方として1月のもので説明しますと「200801実績入力」でデ
ータを入力した後シート上に”決定”ボタンを押します。そうするとシートに
ロックがかかり編集できないようにします。それと同時に「シート選択」に遷
移させます。その後「200801実績報告」を作成するのですが、こちらは各人で
リンクで飛んでもらうという風にしています。

ここに使用者から改善してもらえないかというお話をいただきました。

今は作業工程として
「実績作成TOP」→「シート選択」→「200801実績入力」→「シート選択」→
「200801実績報告」としないとひとつきの作業を終えれないのですが、

「実績作成TOP」→「シート選択」→「200801実績入力」→「200801実績報告
」としてほしいとのことです。
最初の段階で私もそうしたかったのですがどうしてもわからず「シート選択を
」作るで回避してしまったのですがどうしても不満が出てしまいました。

テンプレートに最初からハイパーリンクを埋め込んでもシートに飛べないしというところで問題もあります。
もし作るとしたらシートをコピーすると同時に」→「200801実績入力」→「200801実績報告」へのハイパーリンクを書くということになると思うのですが同時にできるかわからずじまいでした

2008-04-12 12:12の質問
シート  VBA  copy  
この質問と回答を読んで役に立った場合は「役に立つ質問」に投票してください。投票が多い質問は、役に立つ質問一覧に掲載され、より多くの人に見てもらうことができます。
Ads By Google

回答(2)

2.

2008-04-12 21:56:24ベスト
「200801実績入力」→「200801実績報告」へのシート切替は、以下のようにします。
テンプレートにあらかじめコマンドボタンを用意しておいて、以下のマクロを登録しておきます。

現在のシートを保護し、現在のシート名から左6文字を取り出し、そのyyyymmの文字列に「実績報告」を加えたシートを選択させるだけです。

Sub ボタン1_Click()
   With ActiveSheet
       .Protect
       Sheets(Left(.Name, 6) & "実績報告").Select
   End With
End Sub


現在が4月だったら、
200801、200802、200803の実績入力と実績報告のシート作成とのことですが、
これのコードとかも必要ですか?

1.

2008-04-12 15:23:53
ハイパーリンクは具体的にどのようにお使いでしょうか?

VBAならイベント使えば、ハイパーリンクを使う必要性ないんじゃない?

コードを示せば、詳しい方から具体的なアドバイスがもらえると思いますよ。
Ads By Google

コメント(3)

2008-04-12 16:33:29

ハイパーリンクでも良いだろうけど、俺だったらデザインの自由度からコマンドボタンで飛ぶようにしちゃうなぁ…

入力後にロックし、実績報告のシートにダイレクトに飛べば良いのですか?

#4.  mr_r00
2008-04-13 12:44:44

ありがとうございます。移動は出来ました!!ただ保護でエラーが出ます。実行時エラー1004 worksheet クラスのProtectメソッドが失敗しました。です。
>現在が4月・・・との一番最後の質問ですがそこは出来ています。お気遣い有難うございます。

2008-04-14 00:38:52

要求どおり、単にActivesheet(現在のシート)をProtect(保護)してるだけなのですが、なぜEroorが?
dino206gtr@yahoo.co.jpまでファイルを送って貰えると助かります。

トラックバック

トラックバックURL: