- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:シートに関数を入れたい)
シートに関数を入れたい
このQ&Aのポイント
- Excel2007のマクロ作成中の初心者です。シートに関数を入れたいと思っていますが、手動で関数を追加するのは面倒です。新しいシートが追加されても自動的にセルに関数が表示され、シートが削除されても対応できるようにしたいです。
- 現在、C列から始まるセルに以下の関数を手動で追加しています:'東京太郎'!$AS$2、'横浜太郎'!$AS$2、'名古屋太郎'!$AS$2など。しかし、この方法だとシートが追加されたり削除されたりした場合に手動で修正する必要があります。
- したがって、新しいシートが追加されたら自動的に関数が追加されるようにする方法を教えてください。また、シートが削除されても自動的に対応できるようにしたいです。どうかお助けください!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 表示するSheetは必ずSheet見出しの最後のSheetですよね? 一例です。 標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub 表示() Dim j As Long, k As Long, cnt As Long, wS As Worksheet Set wS = Worksheets(Worksheets.Count) With wS j = .Cells(2, Columns.Count).End(xlToLeft).Column If j > 2 Then Range(.Cells(2, 3), .Cells(3, j)).ClearContents End If cnt = 2 For k = 1 To Worksheets.Count - 1 cnt = cnt + 1 .Cells(2, cnt) = Worksheets(k).Cells(2, "AS") .Cells(3, cnt) = Worksheets(k).Cells(8, "AZ") Next k End With End Sub こんな感じではどうでしょうか?m(_ _)m
お礼
ありがとうございました。ご教示いただいたコードを参考に自分で加工してやってみます。
補足
すばやいご回答ありがとうございます。貴方様のコードまだ実行してないですが、たぶん思うとおりの、マクロ実行されるとおもいます。実はこのシートは40枚前後あり、一枚のシートの30箇所のセルを、最後のシートの列に式を入れることになります。でも、シートの増減のたび、もしくは、ブックを開くたびに上のマクロを実行するため、時間がかかります。もしできるなら、最初から、すべての列に式を入れておきたいです。そしてシートが変わっても、最後のシートの関数どおりの値が表示されるようにしたいです。もし、それはできなければ、貴方様の作っていただいたコードを実行するつもりです。面倒かけますがよろしくお願いします。