質問
エクセルで外部データの取り込みの際の「名前の定義」について。
- 投稿日時:2010/11/06 13:13

エクセルで外部データの取り込みの際の「名前の定義」について。
エクセルのテキストファイルウィザードでCSVファイル等の外部データを取り込むと、その範囲に「名前の定義」が自動的にできますが、この名前が"ExternalData_1"となる場合と、外部データのファイルになる場合があるようです。
この違いは何でしょうか?
数日前にエクセル2003でCSVファイルを取り込んだときは"ExternalData_1"でした。
昨日エクセル2000で別のCSVファイルでやってみても"ExternalData_1"だったと思います。
しかし、今日、数日前と同じ2003で、数日前と同じCSVファイルで取り込んだら、"CSV10000"というファイル名で名前が定義されてしまいました。
非常に不思議です。
原因を思い当たる方、いらっしゃいましたらご教示ください。
取り込み範囲の名前の定義を、取り込み後のVBAコードで使用するため、名前がつき方が不定だとまずいのです。
回答 (1件)
- 最新から表示
- 回答順に表示
- ベストアンサーのみ表示
No.1ベストアンサー20pt
- 回答日時:2010/11/06 16:23
取り敢えず。
マクロでQueryTableのNameプロパティを指定せずに実行すると、
『ExternalData_#』という名前が自動付加されますね。
手作業では[外部データ範囲のプロパティ]ダイアログの
「名前」ボックスは未入力状態では受け付けてくれません。
何も弄らないと、デフォルトでセットされたファイル名、
あるいはクエリ名などが付けられる事になります。
>..今日、数日前と同じ2003で、数日前と同じCSVファイルで取り込んだら、
>"CSV10000"というファイル名で名前が定義されてしまいました。
今日もマクロから取り込んだのですか?
>取り込み範囲の名前の定義を、取り込み後のVBAコードで使用するため、
>名前がつき方が不定だとまずいのです。
取り込み時に任意の名前をつければ良いかと思います。
自動記録で
With ActiveSheet.QueryTables.Add(...)
.Name = "CSV10000"
:
などと記録されますよね。ここでNameを付ければ良いです。
あるいは、名前定義に頼らず、取り込み後はQueryTableの
ResultRangeプロパティを使用しても良いかと思います。
With ActiveSheet.QueryTables
If .Count > 0 Then
MsgBox .Item(1).ResultRange.Address
'名前そのものが必要なら、QueryTableからの取得も可能です。
'MsgBox .Item(1).Name
End If
End With
この回答へのお礼
end-u さん、いつもありがとうございます。
> 今日もマクロから取り込んだのですか?
違いはこれでした!!
前回はすべてマクロで取り込んでいました。
そして今回は手作業・・・・。
ResultRangeプロパティも初めて知った呪文です。
今回も大変おせわになりました。
ありがとうございます。
注目の記事
教えて!Firefox
より速く、より安全なウェブブラウザ「Firefox(ファイアーフォックス)」に関する疑問をみんなで解決。全くの初心者から上級者までFirefoxの魅力を十分に味わうために、教えて!gooのユーザーみんながお手伝いします。
このカテゴリで人気のQ&Aランキング
- 4購入しても大丈夫?並行輸入品Offic...
- 5エクセル2010を2003で開くには。
- 6ワード、エクセル2007と201...
- 7プロダクトキーの確認方法
- 8エクセル マクロのエラーを解除し...
- 9【エクセル】IF関数 AまたはBな...
- 10入力中に勝手にカーソルが移動します。
- 11「ワード2010」の書式設定について
- 12Excel 音楽室の位置を調べる
- 13エクセルを使用して、顧客管理デー...
- 14Office2013試用版期限切れ後、使用...
- 15IF関数を使って3つ以上のある範囲...
- 16Excel写真帳の写真を挿入マクロを教...
- 17excelの特定のセルの隣のセル指定に...
- 18スペースキーが効かない
- 19Excel2010 マクロが利用できない
- 20WorkbookのCopyについて






