名前付きセルですが、

エクセル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

━─━─━─━─━─━─━─━─━─━─

これを参考に、コピー機能を作成したいと思います。


あっ、上記のコード、実行すると

全ての名前付きセルが表示終わるまで止まりませんよ。汗
にほんブログ村 科学ブログ 技術・工学へ