
No.2ベストアンサー
- 回答日時:
こんにちは。
#1のka_na_deです。
前回紹介した解説で分かりましたか?
ちょっと説明します。
(1)区切り文字ファイル(DataType:=xlDelimitedの場合)
例えば、FieldInfo:=Array(Array(1, 2), Array(2,1), Array(3,3))
とした場合は、
1列目:テキスト(文字列)
2列目:一般(標準)
3列目:MDY (月日年) 形式の日付
として、指定されます。これなら簡単です。
しかし、VBAのヘルプには、
「列の指定はどのような順番で行ってもかまいません。
指定されなかった列は標準形式と解釈されます。」
とあるので、分かりにくくなっています。上記は
FieldInfo:=Array(Array(3,3),Array(1, 2))
でも良いということです。
しかし、現実にはこのように引数FieldInfoのArray関数を
省略してしまうと、データが正常に取り込めないという不具合に
直面してしまう。そうです。
(2)固定長フィールドファイル(DataType:=xlFixedWidthの場合)
例えば、FieldInfo:=Array(Array(0, 2), Array(5, 5), Array(13, 1)
とした場合は、
0~4文字目:テキスト(文字列)
5~12文字目:YMD (年月日) 形式の日付
13文字以降:一般(標準)
として、指定されます。
尚、参考ページにもありますが、
<FieldInfoのArray関数のニ番目の要素に指定する数値と変換方法>
数値 変換方法
1 一般(標準)
2 テキスト(文字列)
3 MDY (月日年) 形式の日付
4 DMY (日月年) 形式の日付
5 YMD (年月日) 形式の日付
6 MYD (月年日) 形式の日付
7 DYM (日年月) 形式の日付
8 YDM (年日月) 形式の日付
9 EMD (台湾年月日) 形式の日付
10 スキップ列(削除列)
No.3
- 回答日時:
こんばんは。
>FieldInfo:=をArray関数のネストにしているのを見かけますが
それは、人為的に書くことは、あまりないのではありませんか?記録マクロで出来上がったものを流用しているに過ぎないような気がします。仮に、そういうコードを使っている人でさえも、現実に、そのようなコードで書くとは思えません。ただ、QueryTable やOpenText メソッドは、複合のデリミタ(Delimiter)で切り分けるときには、とても便利なメソッドですので、Open ...For Input As # のステートメントよりも便利なときがあります。
なお、配列の中の配列という理屈は、Array関数の中は、もともと、Variant 型なので、その中に、何を入れようとも可能だと思うのです。そして、列+書式設定の命令というのは、ひとつの約束ごとには違いないのですが、それにネストをするというのも、やはりOpenText メソッドの約束ごとのひとつだと思っています。実際、それ以上の構造や仕組みは考えたことがありません。出てくる機会も少ないからです。
No.1
- 回答日時:
こんにちは。
ここが分かりやすいのではないでしょうか?
ずっと読み進めると解説されています。
ちなみに私は実践したことがありません。
スキルアップ講座第12回(DataType:=xlDelimitedの場合)
http://www.moug.net/skillup/nksw/nksw12-01.htm
スキルアップ講座第13回(DataType:=xlFixedWidthの場合)
http://www.moug.net/skillup/nksw/nksw13-01.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- Visual Basic(VBA) vbaエクセルマクロについて RemoveDuplicatesを使わずに、重複行を削除すらマクロを作 3 2023/03/02 22:03
- Excel(エクセル) 生産日報と月間集計 3 2022/06/21 22:32
- C言語・C++・C# c言語について array[i]-‘0’ これってどーゆー意味ですか? (ちなみに16進数を10進数 5 2022/12/06 18:39
- Excel(エクセル) Excelで、関数をネストするのは好きですか? 2 2022/09/13 21:49
- Excel(エクセル) Excelの社員名簿 6 2023/07/10 16:35
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) Excelへのデータ入力作業 4 2023/07/01 18:21
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- 統計学 マルチレベル分析について 2 2023/02/21 09:36
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel VBAでOpenTextのFieldInfoが効かない・・
Excel(エクセル)
-
Excel VBAでテキストを開く際の表示形式
Visual Basic(VBA)
-
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
Excelで数値→文字列変換で指数表示になったものをいっぺんに直したい
Excel(エクセル)
-
6
オブジェクト変数の取得について
Visual Basic(VBA)
-
7
【ExcelVBA】各セルをダブルクォーテーションで括ってCSV保存したい
Visual Basic(VBA)
-
8
【Excel VBA】先頭の「0」飛びを埋める方法
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
「時間」、「期日」、「日付」...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
エクセル マクロ 名前を付けて...
-
Excelについて
-
回覧板の日付について質問です...
-
会社や役所などに提出する書類...
-
EXCELで日付を****年上期、****...
-
エクセルで日付別にシートを分...
-
ACCESSで1月1日~12月31日まで...
-
履歴書の日付間違いで落ちますか。
-
回転印の使い方
-
選択クエリで実行結果を非表示...
-
Excel関数 基準日に一番近い指...
-
VBAフォームのテキストボックス...
-
PDFファイルに日付を名前にして...
-
スクリーンショットで撮影する...
-
Excel 行の"〇" を検索して見出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
マクロボタンを押すと、ファイ...
-
「24日の0時」って・・・
-
回覧板の日付について質問です...
-
日付の大小の表現
-
差し込み印刷に当日の日付が入...
-
「時間」、「期日」、「日付」...
-
エクセル マクロ 名前を付けて...
-
エクセルで日付別にシートを分...
-
EXCELで日付を****年上期、****...
-
履歴書の日付間違いで落ちますか。
-
Excelについて
-
フォームの値をクエリーに反映...
-
エクセルで6ヵ月後を自動入力で...
-
会社や役所などに提出する書類...
-
日付以外のデータを抽出したい...
-
ACCESSで日付ごとに自動連番(...
-
エクセルで日付け表示で、明治...
-
Excelで1週間毎の集計(今週と...
-
Excelでヘッダに前日の日付を表...
-
2つの日付の中間の日付 エク...
おすすめ情報