- ベストアンサー
シートを追加したときにタイトルの連番も自動で
WindowsXP EXCELL2003 いつも御世話になります。 納品書と請求書が一緒になった 「納請書」 がブックには3シートを用意しています。 受注が追加されるごとにこの「納請書3」のコピーとして追加します。 図で言うと「納請書4」という具合にです。 この場合 「納請書3」のコピーですからタイトルは B3 納品書(3) B32 請求書(3) となりこれを B3 納品書(4) B32 請求書(4) と自動的に変えられる方法はないでしょうか。 可能ならばご指導いただけませんでしょうか。 ※現在は 入力規則 でその都度、手動で対応していますが結構変更ミスが多く防止をしたいためです。 シートのコピーのマクロは以下です。 Sub シートの追加() Dim NewNo As Integer NewNo = Sheets("月請求書").Index Sheets("納請書3").Copy Before:=Sheets("月請求書") ActiveSheet.Name = "納請書" & NewNo End Sub
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
マクロを使わなくともB3セルにシート名から作成する次のような式を入力しておくことでコピーが作られてもそのシート名に対応した名前が表示されますね。 ="納品書 (" & MID(TRIM(MID(CELL("filename",B3),FIND("]",CELL("filename",B3))+1,10)),4,LEN(TRIM(MID(CELL("filename",B3),FIND("]",CELL("filename",B3))+1,10)))-3) & ")" また、B32セルには次の式を入力します。 ="請求書 (" & MID(TRIM(MID(CELL("filename",B32),FIND("]",CELL("filename",B32))+1,10)),4,LEN(TRIM(MID(CELL("filename",B32),FIND("]",CELL("filename",B32))+1,10)))-3) & ")"
その他の回答 (2)
- myRange
- ベストアンサー率71% (339/472)
おや、どこかで見たコードだなぁ。。。(^^;; というこで、今回も回答せねば。。 '--------------------------------------------- Sub シートの追加() Dim NewNo As Integer NewNo = Sheets("月請求書").Index Sheets("納請書3").Copy Before:=Sheets("月請求書") ActiveSheet.Name = "納請書" & NewNo ActiveSheet.Range("B1").Value = "納 品 書(" & NewNo & ")" ActiveSheet.Range("B32").Value = "請 求 書(" & NewNo & ")" End Sub '-------------------------------------------- 以上です。
お礼
No3にて解決しました。 いつも御世話になります。 心より感謝します。 誠に有難うございました。
補足
前回は有難うございました。 テストして、 シートを追加して「納請書3」をコピーして 納品書4 請求書4 はうまくいきました。 このタイトルが左寄りになってセンター寄せにしたいのですが。 半角で17回エンターを寄せればセンターに来るのですがどうすればいいでしょうか。 恐れ入りますが宜しくご指導いただけませんか。
- xls88
- ベストアンサー率56% (669/1189)
Range("B3").Value = "納品書(" & NewNo & ")" Range("B32").Value = "請求書(" & NewNo & ")"
お礼
No3にて解決しました。 いつも御世話になります。 誠に有難うございました。
お礼
いつも クリモトさん に御世話になります。 心より感謝します。 お陰でうまくいきました。 誠に有難うございました。