名前付きセルですが、
エクセルVBAで設定値の保持によく使います。
EXCELからDXFでも使っています。
ただ、今回、この設定値を
2つのシートで保持する必要が出てきました。
ひとつは実行時に使用する設定値(実行設定値)。
もうひとつは、保存時に使用する設定値(保存設定値)。
こうすることで、一時的に設定値を変更して
実行できるようになります。
で、実行設定値、保存設定値共、
それぞれ一つのシートで管理しています。
エクセルファイルを開いたとき、
保存設定値シートから、実行設定値シートへ
コピーする必要があります。
この処理を、シートまるごとコピーで
やろうとしたのですが、
シートが非表示だったりするとエラーが発生したりします。
なので、名前付きセルごとにコピーしてやろう
ってことにしました。
で、その布石。
下のコードで名前付きセルが、順次、表示されます。
━─━─━─━─━─━─━─━─━─━─
Sub Test()
Dim セル As Variant, msg As String
Dim セル名 As String, シート名 As String
Dim 行 As Long, 列 As Long
For Each セル In ActiveWorkbook.Names
With セル
If .RefersToRange.MergeCells = False Then
セル名 = .Name
シート名 = .RefersToRange.Worksheet.Name
行 = .RefersToRange.Row
列 = .RefersToRange.Column
msg = "シート名:" & シート名 & Chr(13) & _
"セル名:" & セル名 & Chr(13) & _
"行=" & 行 & " 列=" & 列
MsgBox msg, vbInformation, "名前付きセル情報"
End If
End With
Next
End Sub
━─━─━─━─━─━─━─━─━─━─
これを参考に、コピー機能を作成したいと思います。
あっ、上記のコード、実行すると