カテゴリー
コンピューター

【Excel VBA】エクセルファイルのコネクション、名前をすべて削除するコード!

追記: 2015年11月22日

Excel のデータコネクション、セルなどにつけた名前を全てく削除するプロシージャコード

''' <summary>
''' エクセルファイルに存在するコネクションを全て削除します。
''' </summary>
Private Sub DeleteConnections()
  Do While ActiveWorkbook.Connections.Count > 0
    ActiveWorkbook.Connections.Item(ActiveWorkbook.Connections.Count).Delete
  Loop
End Sub

''' <summary>
''' エクセルファイルに存在する名前を全て削除します。
''' </summary>
Private Sub DeleteNames()
  Do While ActiveWorkbook.Names.Count > 0
    ActiveWorkbook.Names.Item(ActiveWorkbook.Names.Count).Delete
  Loop
End Sub

使いドコロ♪

  • クエリーテーブルを使用して、CSV ファイルをインポートするとき
  • クエリテーブルを使用すると、CSV ファイルとのコネクションが張られ、エクセルデータを編集すると CSV ファイルも同様に編集しようとしてしまう。
  • また、読み込んだデータ範囲に、名前を自動的に付けてしまう。
  • そのため、CSV ファイルをエクセルに読み込ませたいだけなら、クエリテーブルを使用しての読み込み後、コネクションを削除する必要がある。
  • コネクションの名前は、クエリテーブルで指定し、名前はコネクションに指定した文字列を元に作られる。しかし、いまいち法則性を検証していない。
  • もともとコネクションも、名前も使う必要がなく、CSV ファイル読み込みはプログラムの最初の処理のため、作成されたコネクションと名前はすべて削除することにした。

おわりに

こちらのページが参考になりました。

コネクションのコードはそのままに、Names でも使えるようにした内容となります。

便利ですの♪

以上です。

コメントを残す