![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
恐れ入りますが、ご存知の方、ご教授願います。
Excel VBAにてテキストファイルを開く際に、表示形式を"標準"ではなく"文字列"で取り込もうと思います。
"文字列"にするにはVBAで下記のように記述します。
------------------------------------------------------------------
Workbooks.OpenText Filename:= _
sFileName _
, Origin:=932, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array( Array(1, 2), Array(2, 2), Array(3, 2)) , TrailingMinusNumbers:=True
------------------------------------------------------------------
FieldInfo:=部分に列数だけArray(x, 2)を指定しますが、一括で"文字列"指定することは可能でしょうか。
恐れ入ります。ご教授願います。
No.1ベストアンサー
- 回答日時:
>一括で"文字列"指定
Loop回すので『一括』とはちょっと違うかもしれませんが
:
Dim arg(1 To 256)
Dim i As Long
For i = 1 To 256
arg(i) = Array(i, 2)
Next
Workbooks.OpenText Filename:=sFileName, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
Tab:=True, _
FieldInfo:=arg
:
こんな感じで可能です。
後は参考ですが、OpenTextメソッドでtextファイルを開くのではなく、
xlsシートにtextデータを取り込む場合は
Sub try()
Dim arg(1 To 256)
Dim i As Long
For i = 1 To 256
arg(i) = 2
Next
With Workbooks.Add(xlWBATWorksheet)
With .ActiveSheet.QueryTables.Add(Connection:="TEXT;" & sFileName, _
Destination:=Range("A1"))
.AdjustColumnWidth = False
.TextFilePlatform = xlWindows
.TextFileTabDelimiter = True
.TextFileColumnDataTypes = arg
.Refresh BackgroundQuery:=False
.Parent.Names(.Name).Delete
.Delete
End With
End With
End Sub
こんな感じで。
end-u 様
アドバイス有難うございます。
ご教授いただいた前半の方法でとりあえず行いました。
後半の方法も色々改造して使用させて頂こうと思います。
しばらく多忙で、なかなかアドバイスを実行することが出来ず、お礼が遅くなり申し訳ございませんでした。
大変ありがとうございました。
No.2
- 回答日時:
すでに、すばらしい回答がでているので、別アプローチを
しかも方法のみですが、ファイルを一括して変数に取り込み
シート全体の書式を文字に設定
書式を設定したシートに一気に書き出す
と言うやり方もあります
http://officetanaka.net/excel/vba/file/file08.htm
一番下
pulsa 様
アドバイス有難うございます。
ご教授いただきましたサイトを参考にさせて頂きます。
業務が多忙でしばらくお礼を申し上げることができずに遅くなりました。
今後ともよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/04 14:20
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/04 12:47
- XML エクセルのマクロについて教えてください。 3 2023/02/06 09:06
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
Excel VBAでOpenTextのFieldInfoが効かない・・
Excel(エクセル)
-
Array関数のネスト
Access(アクセス)
-
【Excel VBA】先頭の「0」飛びを埋める方法
Visual Basic(VBA)
-
-
4
エクセルVBAで5行目からオートフィルタモードに設定したいたい
Excel(エクセル)
-
5
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
6
マクロを使ってフォルダー内にあるtxtデータをエクセルにデータに変換する方法をご教授願います
Excel(エクセル)
-
7
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
Excelで指数表現しないようにす...
-
VBAでの Replace関数で、ワイル...
-
【Excel VBA】複数ある特定の文...
-
エクセルで文字列をtxtファイル...
-
VBA2005 16進を2桁で表示したい。
-
ダブルコーテーションでアンド...
-
VBの「As String * 128」とは?
-
同一セル内に関数と文字列を同...
-
Excelで3E8を3.00E+8にしない方...
-
アクセスで特定の数字以外(複...
-
Left関数とRight関数を合わせた...
-
MS SQLServer のSQLで文字列の...
-
Msgboxの×が押されたとき
-
文字列からタブコードを取り除...
-
エクセル 数値データを桁をそ...
-
ORCLEでの小数の表示方法の変更...
-
16進数を10進数に簡単に変換す...
-
VBA テキストボックスの計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
Excelで指数表現しないようにす...
-
Excelで3E8を3.00E+8にしない方...
-
エクセルで文字列の最大値を抽...
-
MS SQLServer のSQLで文字列の...
-
エクセルで文字列をtxtファイル...
-
Left関数とRight関数を合わせた...
-
【Excel VBA】複数ある特定の文...
-
同一セル内に関数と文字列を同...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
エクセル 数値データを桁をそ...
-
Msgboxの×が押されたとき
-
Excelはなんで先頭の0を消すん...
-
16進数を10進数に簡単に変換す...
-
Pro c/c++ でホスト変数の後に....
-
[C言語]fputsとfprintfの違い
おすすめ情報