[[20100611170239]] 『置換マクロ』(もこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『置換マクロ』(もこ)
「スペックシート」と「リスト」を作成するボタンを作りました。
ボタンを押すと新しくスペックシートが作成され、名前を付れるようにしました。
そして[リスト]というシートに[かくれリスト]からコピー・挿入してリストの表が作成されます。
そこまでは良いのですがリストの表はスペックシートからリンクしたいのです。
元の[かくれリスト]に =IF(スペック!$D$5="","",スペック!$D$5) と入力しているので、置換で「スペック」→「新しく作成したシート名」にする方法はありますでしょうか?
宜しくお願い致します。
Sub シート作成()

    Dim sheetname As String
    Dim ws

    '===スペックシートを増やす===

    sheetname = Application.InputBox("新規シート名を指定してください", "シート名", Type:=2)
      If sheetname > "" And sheetname <> "False" Then
        Worksheets("スペック").Visible = True                    'スペックシートを表示させる
        Worksheets("スペック").Copy After:=Sheets(Sheets.Count)  'シートを最後に追加
        ActiveSheet.Name = sheetname
        Worksheets("スペック").Visible = False                   'スペックシートを非表示にする

      End If

   '===リストを一枚増やす===

    Worksheets("かくれリスト").Visible = True           'かくれリストシートを表示させる
    Worksheets("かくれリスト").Range("1:56").Copy        'リスト1枚分をコピー
    Worksheets("リスト").Range("リスト最終行").Insert    'コピーしたリスト1枚分を挿入

                                                         '増やしたリストのリンク先を変更(置換)

    Worksheets("かくれリスト").Visible = False          'かくれリストシートを非表示にする

End Sub


 置換するのをマクロ記録で取ってヘルプを見ながら引数をちょっと変えると

 Worksheets("リスト").Cells.Replace _
     What:="スペック", Replacement:=sheetname, LookAt:=xlPart, SearchOrder:=xlByRows, _
     MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

 こんなコードを作れると思います。

 (momo)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.