dポイントプレゼントキャンペーン実施中!

Excelで多数の名前定義をしたのですが、その参照範囲を一括で変更したいと思っています。

<例>
名前あ:A3~Z4
名前い:A5~Z6
名前う:A7~Z8



→これを全てA*~Y*に変更したい。

名前定義のリストを使用して出来ない物かと考えておりますが、妙案が浮かびません。
やはり一つ一つ選択して変更するしかないのでしょうか。。。

どうぞ宜しくお願い致します。

A 回答 (2件)

こんばんは。



NamesListsOut で、どこか、開いたシートに一旦書き出してください。A1からリストが書き出されます。

それを、書き換えてください。
次に、NamesListsIn で、書き換えたリストをインポートしてください。一気にインポートされます。既存のものも出力されますから、そのまま、置いたままにしてください。一度、名前定義は削除されます。

例:

出力
 A      B
 あ   =Sheet2!$I$2:$J$2
 い   =Sheet2!$I$3:$J$3

と出てきますから、これを書き換えます。
式の部分は間違えないようにしてください。
同じシートをあけたまま、'NamesListsIn' を実行します。


'--------------------------------------------------
'VBA の標準モジュールのみです。

Sub NamesListsOut()
'名前定義書き出し
Dim i As Integer
With ActiveWorkbook
For i = 1 To .Names.Count
 Cells(i, 1).Value = .Names(i).Name
 Cells(i, 2).Value = "'" & .Names(i).RefersToLocal
Next i
End With
End Sub

'--------------------------------------------------
Sub NamesListsIn()
'名前定義登録
Dim n As Name
Dim i As Integer

With ActiveWorkbook

'一旦名前定義を削除
For Each n In .Names
 n.Delete
Next n
'登録
On Error Resume Next
For i = 1 To Range("A65536").End(xlUp).Row
  .Names.Add Cells(i, 1).Value, Cells(i, 2).Value
Next i
On Error GoTo 0
End With
End Sub

'--------------------------------------------------
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
冒頭に述べればよかったのですが、実はマクロはまだ勉強不足です。
ただ、マクロを使わないと難しいようですので、ご指示の内容を元に少しずつ勉強させて頂きたいと思います。

お礼日時:2006/08/21 17:51

A~Zの間で1列削除してはどうでしょう。

    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
説明不足で申し訳ありませんが、A~Zまで全て必要なデータですので削除はできません。
参照範囲のみ変えたいというのが今回の希望です。

お礼日時:2006/08/21 17:50

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

このQ&Aを見た人はこんなQ&Aも見ています