アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんわ。


EXCELでの質問なのですが・・・

基本となるシートがあり、それを毎日コピーしてその日の情報を入力して使っています。

毎回毎回、シートコピー→シート名変更が大変です。

シートをコピーした際に自動的に日付を取得してシート名をつけるってことは出来ないのでしょうか?


つまらない質問ですみませんが、知識のある方、ご教授願います。

よろしくお願いいたします。

A 回答 (4件)

こんにちは。



>基本となるシートがあり、それを毎日コピーしてその日の情報を入力して使っています。
どこにあるのか分かりません。他のブックからシートコピーをどこに入れるのでしょうか。

任意の場所からコピーした時点から、シートの名前を、本日の日付にするまでというマクロは、難問のひとつではないでしょうか。つまり、新たにブック全体を監視するイベントを作るということだと思います。かなり大げさな内容になると思いますが、しばらく考えてみないと、分かりません。

せいぜい、今は、アクティブシートを本日の日付にするかどうかぐらいです。私は、ブック名は自動的に作るマクロは作っていますが、シート名をコピーしたときに変更するマクロは作ったことがありません。ふつう、キーボードマクロのショートカットで[090711]と、出力されますから、あまり気にしたことがありません。

'-------------------------------------------
'標準モジュール
'-------------------------------------------
Sub SheetNameChange()
 On Error Resume Next
  ActiveSheet.Name = Format(Date, "yymmdd")
 On Error GoTo 0
End Sub

'-------------------------------------------
ツールバーのユーザー設定から、コマンド・ボタンを設定するか、Alt + F8 のオプションで、ショートカットにでも入れてあげればよいと思います。
    • good
    • 0

#3の回答者です。



今、読み返すと、ちょっと話が、質問の実際と離れつつあるような気がしました。
元の質問の内容が詳しく書かれていません。どうしても、質問が曖昧な場合は、私などは、最大レベルの問題を考えてしまいます。例えば、近所のスーパーに買いに出かけるようなレベルなのに、スーパーカーのスペックを考えてしまうのです。質問というのは、ある意味で回答者への挑戦状のようなものなのです。

もう一度、質問を確認してください。

[基本となるシートがあり] ---どこにあるのですか?
[それを毎日コピーして]---どこにコピーするのですか?ブックのシートの最後ですか?
[その日の情報を入力]---その日の情報というのは何ですか?

[シートをコピーした際に自動的に]---どういう操作に対して自動的に発生させるのですか?コマンドボタンですか?
[日付を取得してシート名をつける]---日付を取得というのは、何から取得するのですか?
コンピュータ内部の日付のことですか?それとも、ワークシートのデータからですか?ワークシートのデータからなら、一体、どこからですか?
    • good
    • 0

知識が十分で無いと、あることを「出来ない」というのは、非常に危険なんだが、


>シートをコピーした際に自動的に、はVBAのイベントと言う種類の
考えが必要の臭いがする。
下記(2)の操作を捉えるイベントがないとおもう(ここが本当に無いかどうか??)のでむつかしいのではないか。
(1)挿入ーワークシートのシート追加なら
Private Sub Workbook_NewSheet(ByVal Sh As Object)
MsgBox "シート挿入"
Sh.Name = Format(Date, "yymmdd") & "シート"
End Sub
で実現できそう。
ただもう少し、1日内に2度やらないか、などのチェックも必要だろうが。自分だけが使う場合なら、2重命名の指摘エラーは出るので覚悟しとけばよいとも言える。
(2)「移動またはコピー」でやると、イベントに引っかからない。従ってシート名をVBAで変える機会が与えられない。
(3)メニューやツールバーボタンをクリックなどすると、(1)と同じシート名の変更をするのは、中身はSh.Name =・・で1行なんだが
メニューやツールバーボタンの仕組みを作るのが、VBAやエクセルの中級以上の力が要ると思う。
従って質問者には難しいかなと思う。
勉強して、ボタンが作れれば、マクロ(前述のように中身は1行)の登録をすればよいだけ。
ただ変更対象シートをアクチブシートにするなど難しい面がある。
(2)をやると増えたシートがアクチブシートになるので、直ぐ名前を変えないといけない。何か操作後だと増えたシートがどれか割り出しが難しい。
    • good
    • 0

>シートをコピーした際に自動的に日付を取得してシート名をつけるってことは出来ないのでしょうか?



まず、現在の作業をマクロ記録する。
そうすればシートコピー/シート名変更のコードが得られます。

あとはシート名に本日の日付を採用する方法を考えれば良いですね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!