• ベストアンサー

Excelで定義した名前の参照範囲を一括で変更したい。

Excelで多数の名前定義をしたのですが、その参照範囲を一括で変更したいと思っています。 <例> 名前あ:A3~Z4 名前い:A5~Z6 名前う:A7~Z8 : : →これを全てA*~Y*に変更したい。 名前定義のリストを使用して出来ない物かと考えておりますが、妙案が浮かびません。 やはり一つ一つ選択して変更するしかないのでしょうか。。。 どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.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 '--------------------------------------------------

eh4415
質問者

お礼

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

その他の回答 (1)

  • NCU
  • ベストアンサー率10% (32/318)
回答No.1

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

eh4415
質問者

お礼

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

関連するQ&A