csvファイルをexcelで開くとき「文字列として読み込みますか」と尋ねるウインドウが立ち上がるのです。
ウインドウが立ち上がらずに必ず文字列として読み込むように設定する方法を教えてください。

os  windows7

excelのバージョンは2003です。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

>「文字列として読み込みますか」と尋ねるウインドウが立ち上がるのです。



文字通りにそう書かれたウィンドウが立ち上がるのですか?
通常,CSVを開いてそういうウィンドウが開く事はありません。
もう一度実際にエクセルを起動して,現れるウィンドウの内容を正確に再確認してください。

通常のエクセルの動作で類似の事が起きる可能性としては
1)ファイルのWクリックでは開く事が出来ず,ファイルを開くから開いていて
2)「テキストインポートフィルタ」が起動していて
3)ファイル名が「ファイル.csv.txt」のようになっている
のような状況だったりするかも?しれません。



あるいはもしかすると,例えばあなたが以前に
http://www.geocities.jp/hirzat/doc/excelcsv.html
にあるようなアドインなどをご自分でエクセルに登録して,そのまますっかり忘れていたのが今も律儀に作動しているのかも?しれません。

ツールメニューのアドインで,アヤシイのを全部チェックを外してエクセルを再起動し,様子を確認します。

この回答への補足

正確に書きますね。

csv読み込み【csvファイルの全項目を文字列として読み込みますか?】
選択肢は【はい】【いいえ】【キャンセル】

以上です。

>通常のエクセルの動作で類似の事が起きる可能性としては
>1)ファイルのWクリックでは開く事が出来ず,ファイルを開くから開いていて
>2)「テキストインポートフィルタ」が起動していて
>3)ファイル名が「ファイル.csv.txt」のようになっている
>のような状況だったりするかも?しれません。

2)はおっしゃる事がよくわからないのですが、1)と3)ではありません。

アドインにチェックが入っているのは【Readcsv】のみにチェックが入っています。
このチェックをはずすとウインドウは立ち上がりませんが文字列で開けません。



よろしくお願いします。

補足日時:2011/04/26 18:17
    • good
    • 0

んーと,いうことは


>アドインにチェックが入っているのは【Readcsv】のみにチェックが入っています。
>このチェックをはずすとウインドウは立ち上がりませんが文字列で開けません。

そのアドインの機能によって
・ダイアログが出る
・文字列で開く
という事を実現していますので,現状でこのご相談に関しては,そういうモノだと言うことで甘受してください。

どこのどなたが作ったどんなアドインなのか判りませんが,他の方の著作物であるアドインを勝手に手を入れて提供するといった事は出来ません。
あなたがご自分の手で,勝手に修正してご利用になるのを止めはしませんが。


あるいは,そのアドインは「ダイアログが出るので使いたくない」とあなたが判断するのでしたら,不満足故使わないのもあなたの判断です。他の方法を探してください。
たとえば先の回答でちらっと触れたURLのマクロなり,あるいは丸投げでこちらの相談室で誰かにマクロを書いて貰うのも良いかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
アドインの何たるかも知りませんが、こういう仕様だとあきらめます。

しかし参考URLの動作とよく似ているんですよねぇ。
このアドインかしら。

お礼日時:2011/04/27 01:21

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q見積書の項目を英語に変換したいのですが・・

現在使用している見積書の項目を英語に変換したいのですが、
下記の項目の見積上の正しい訳を教えて下さい。
宜しくお願いします。
・項目
・数量
・単価
・小計
・合計

Aベストアンサー

・項目=Item
あるいはDetailed Description of Goods
形状とか内容、というニュアンス
・数量=Qty.
・単価=Unit Value
・小計=Sub Total
・合計=Total(数量欄にはTotal Qty 金額欄にはTotal Value)

QExcel VBAでCSVファイルを読込むと何故か文字列が日付に変換さ

Excel VBAでCSVファイルを読込むと何故か文字列が日付に変換されて困っています。
すごく困っております。どなたか教えて下さい。

状況を申し上げますと、以下のようなCSVデータがあります。
"住所1","住所2"
"東京都港区青山","1-24-11"

このとき、別なCSVにデータを移すという単純なものです。

通常は、
WsCount.Cells(1, 1).Value =Cells(2,1).value
WsCount.Cells(1, 2).Value =Cells(2,2).value
で、セルにある文字をそのまま、新しいシートのセルに移すだけのことですが、
何故か、"1-24-11"が日付に変換され、"2011/1/24"に変わってしまいます。
デバックなどで、途中経過を見ても既に日付にかわっており、
どうにも対応ができません。

以前は""で囲んである文字は、文字のまま認識していたと思いますが、
何故か今回はうまくいきません。

ちなみに、Excel2007です。

どなたか、教えて下さい。

宜しくお願いします。

Aベストアンサー

ヒントです

Office2007で「データ」→「外部データの取り込み」→「テキストデータ」を選択すると、フィールド毎の取り込みの型を指定できます(文字列型にすれば日付型には変換されません)

この操作を「マクロ記録」してみてください。こんなマクロが生成されます。

Sub Macro1()
'
' Macro1 Macro
'
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Temp\sample.csv", _
Destination:=Range("$A$1"))
.Name = "sample"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

あとはいらない行を削除してできあがり。削除しなくても一応は動くはずですけど。

ヒントです

Office2007で「データ」→「外部データの取り込み」→「テキストデータ」を選択すると、フィールド毎の取り込みの型を指定できます(文字列型にすれば日付型には変換されません)

この操作を「マクロ記録」してみてください。こんなマクロが生成されます。

Sub Macro1()
'
' Macro1 Macro
'
With ActiveSheet.QueryTables.Add(Connection:="TEXT;D:\Temp\sample.csv", _
Destination:=Range("$A$1"))
.Name = "sample"
.FieldNames = True
.RowNumbers = False
...続きを読む

Q英語で大項目、中項目、小項目

英語で
・大項目
・中項目
・小項目
はどのように表現すればいいのでしょうか。
教えてください。

よろしくお願いします。

Aベストアンサー

webには、
(main) headings, subheadings, sub-sub(-)headings
というような表現があるようです。
他にも呼び方があると思いますが、...

QExcel2003で列数制限以上のCSVファイルを読み込む方法

初めて投稿いたします。
仕事で使うCSV形式のテキストファイルをExcel2003に読み込ませようとしています。1つのデータ群が数値50個の連続データで構成されていますが、改行情報が入っていないため、データ群が多くなると列数制限(256列まで)でファイル自体が単純に読めない状態です。
データ群毎に改行すれば、1枚のワークシートで読み込めると思います(下記イメージ)。何とか頑張ってVBAマクロで作成したいと思います。
参考になるサンプルマクロとかをご存じないでしょうか?CSVエディタとの併用も考えましたが、Excelだけで完結できればありがたいです。
どうぞよろしくお願い申し上げます。


[現在のデータ形式イメージ]
a1,a2,…,a50,b1,b2,…,b50,c1,c2,…,c50,d1,d2,…,d50,………
(1行で連続したデータ)

[変更後のデータ形式イメージ]
a1,a2,…,a50
b1,b2,…,b50
c1,c2,…,c50
d1,d2,…,d50
e
f

(1行あたり50列のデータ)

初めて投稿いたします。
仕事で使うCSV形式のテキストファイルをExcel2003に読み込ませようとしています。1つのデータ群が数値50個の連続データで構成されていますが、改行情報が入っていないため、データ群が多くなると列数制限(256列まで)でファイル自体が単純に読めない状態です。
データ群毎に改行すれば、1枚のワークシートで読み込めると思います(下記イメージ)。何とか頑張ってVBAマクロで作成したいと思います。
参考になるサンプルマクロとかをご存じないでしょうか?CSVエディタとの併用も考え...続きを読む

Aベストアンサー

Sub 分割q()
Dim inpdata As String
Dim i As Integer
Dim j As Long
Open "E:\inpcsv.csv" For Input As #1
Do Until EOF(1)
j = j + 1
For i = 1 To 50
Input #1, inpdata
Cells(j, i) = inpdata
If EOF(1) Then Exit For
Next
Loop
Close #1
End Sub
ActiveなシートのA1から50列ずつデータが入ります。

Q項目数は英語で

フィールドの項目数を格納する変数を定義したいのですが、
適切な名前が思い当たりません。
項目数は英語でなんていうのでしょうか。
また、変数などを命名する際に参考になりそうなサイトがあればご紹介願います。
よろしくお願いします。

Aベストアンサー

通常、命名規約は変数のスコープとか型を現す接頭語などを定義しますが名称まで定義するのは珍しいです。

まあ、システムでの項目って業種、業態、業界などで取り扱う物が違いますし物によって同じものでも業界用語で呼ばれるものやその会社独特の名称で呼ばれるものがありますので

よくやるのが先頭1文字をスコープとし
g:プロジェクト内参照可能(Global、今はPublicと書きますが)
m:モジュール内参照可能(Module)
l:関数内(Procedure)の変数(Local)
p:関数の引数で指定されたもの(Parameter)

次に型
s:string,i:int,l:long,b:bool,d:date...
場合により2文字とか3文字を使う所もあるようです

プログラム名やフォーム名もシステムが大きくなると
先頭をサブシステム、次に処理タイミング、日次・月次・随時・年次・・・
の後に連番数字をつけて画面名とか
テーブル名も先頭をマスタ、トラン、ワーク・・・などを付ける等等、、、

テーブル等の項目名は最初に名前を付けた人に準じて命名してます。
自分が最初の場合はかなり適当です、極力あとで分かるようにと思ってつけますがやはりテーブルレイアウト参照しながら出ないとPGが作れないですが
YahooとかLivedoorの翻訳サイトで翻訳して適当なものを探しますが一般に使わない英単語を使うと後でなんだこれと思う事も良くありますので英語の苦手な私はローマ字表記がやはり見やすい気もします。
長い名前はコーディング時に面倒なので省略しながら。

ちなみに私ならフィールドの項目数位はローマ字にしないで単純にColCountでしょうね(笑)

通常、命名規約は変数のスコープとか型を現す接頭語などを定義しますが名称まで定義するのは珍しいです。

まあ、システムでの項目って業種、業態、業界などで取り扱う物が違いますし物によって同じものでも業界用語で呼ばれるものやその会社独特の名称で呼ばれるものがありますので

よくやるのが先頭1文字をスコープとし
g:プロジェクト内参照可能(Global、今はPublicと書きますが)
m:モジュール内参照可能(Module)
l:関数内(Procedure)の変数(Local)
p:関数の引数で指定されたもの(Parameter)

次に...続きを読む

QExcelVBAでCSVファイル上書き後の読み込み

マクロ1では元々存在するold.csvファイルを上書きしています。
old.csvはテキストエディタを使い、手で作ったファイルです。

マクロ2では、マクロ1で上書きされたold.csvファイルを読み込み
データが終了するまで処理します。
この時、old.csvは存在するのに
実行時エラー '3021'
BOFとEOFのいずれかがTrueになっているか、または現在のレコードが削除されています。
要求された操作には、現在のレコードが必要です。
となります。

どなたか解決していただけないでしょうか?
Excel2003 SP3です。
どうかよろしくお願いします。


マクロ1
FilePass = "c:\Documents and Settings\デスクトップ\old.csv"

A_CONcsv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=c:\Documents and Settings\デスクトップ;" & _
"ReadOnly=1"

Call Old_data_UP(StrOld_data, A_CONcsv)

'old.csvファイル出力
Open FilePass For Output As #1
Print #1, StrOld_data
Close #1

Function Old_data_UP(FStrOld_data, CONcsv)
new_x.csvを読み込みold.csvを更新するための編集をしています。
(old.csvは最初だけ手で作り、次からはマクロ1で更新された物を使いたいです。)
省略します。
End Function

マクロ2
FilePass = "c:\Documents and Settings\デスクトップ\new_x.csv"

A_CONcsv = "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=c:\Documents and Settings\デスクトップ;" & _
"ReadOnly=1"

A_CONxls = "Driver={Microsoft Excel Driver (*.xls)}; " & _
"DBQ=c:\Documents and Settings\デスクトップ\db\Mydata.xls;" & _
"ReadOnly=1"

Call data_match(StrNew_x, A_CONcsv, A_CONxls)

'new_x.csvファイル出力
Open FilePass For Output As #1
Print #1, StrNew_x
Close #1

Function data_match(FStrNew_x, CONcsv, CONxls)
new.csvとold.csvとMydata.xlsを読み込み
new_x.csvを出力するための編集をしています。
new.csvはテキストエディタを使い、手で作ったファイルです。
省略します。
End Function

マクロ1では元々存在するold.csvファイルを上書きしています。
old.csvはテキストエディタを使い、手で作ったファイルです。

マクロ2では、マクロ1で上書きされたold.csvファイルを読み込み
データが終了するまで処理します。
この時、old.csvは存在するのに
実行時エラー '3021'
BOFとEOFのいずれかがTrueになっているか、または現在のレコードが削除されています。
要求された操作には、現在のレコードが必要です。
となります。

どなたか解決していただけないでしょうか?
Excel2003 SP3です。
どうかよ...続きを読む

Aベストアンサー

>Excelでマッチングしてファイル出力

普通「マッチング」のロジックでは、EOF判定は重要です。
比較する2ファイルのレコード数は同じですか?、違いますよね?。

簡単に言えば、
ファイル1:あ、い、う、お
ファイル2:あ、う、え
ファイル2の「え」、ファイル1の「う」の後は、
共にどういうロジックか、です。
ファイル1の「お」のときの比較対象であるファイル2はEOFになってしまってます。
これと似た感じでしょう。

どんなロジックにしたかは分かりませんが、
EOFになったときの処置を中心に見たら良いかと思います。

原因箇所がつかめたら、「マッチング」のロジックの見直しでしょう。

Q「何項目まで知りたい?」を英語にしてください。

数列の話をしています。
「何項目まで知りたいですか?」
と英語で言うには、どうすればいいですか?

Aベストアンサー

数列の『項』は term です。

「何項目まで知りたいですか?」 → How many terms from the beginning do you want to know?  直訳は『最初から何項目知りたいですか?』 です。

QCSVファイルの読み込みVBA作成について

初めまして。
色々インターネット等で検索して作成してみたのですが、
ここから先のプログラムが組めないので、
やり方を教えて頂けますと幸いです。

おそらくIf Elseで場合訳すると思うのですが、
上手くできてません。

下記、プログラムの概要です。
(1)フォルダを指定し、そのフォルダにある全てのCSVファイルを読み込む。
(2)CSVファイルを読み込む際には、「*.csv」の「*」部分をワークシート名とし、CSVファイルの内容をワークシートに書き込む。
例)「test.csv」の場合、ワークシート名は「test」になります。
(3)既にブックにワークシート名がある場合は上書き処理を行い、ない場合は新規に作成する。
例)既に「test」ワークシートがある場合は、内容の上書きを行います。
(4)ワークシートを追加する際は、今あるワークシートの最後に追加する。

下記に現在作ったプログラムを記載します
---------------------------------
Sub csvRead()
Dim FoldPath As String
Dim f
Dim ch1 As Long
Dim r As Long
Dim textLine As String
Dim csvLine() As String
Dim i As Long
Dim FSO
Dim folderSelect As Object

Set folderSelect = CreateObject("Shell.Application"). _
BrowseForFolder(0, "フォルダを選択してください", 0)
If Not folderSelect Is Nothing Then
FoldPath = folderSelect.Self.Path 'フォルダ選択
End If

Set FSO = CreateObject("Scripting.FileSystemObject")

i = Worksheets.Count '現在のワークシート数を格納

For Each f In FSO.GetFolder(FoldPath).Files
If StrConv(Right(f.Path, 4), vbLowerCase) = ".csv" Then
ch1 = FreeFile
Open f.Path For Input As #ch1
r = 1

Worksheets.Add after:=Worksheets(i)
With ActiveSheet
.Name = Left(f.Name, Len(f.Name) - 4)
Do While Not EOF(ch1)
Line Input #ch1, textLine
If textLine <> "" Then
csvLine() = Split(textLine, ",")
.Range(Cells(r, 1), Cells(r, UBound(csvLine()) + 1)) = csvLine()
End If
r = r + 1
Loop
End With
i = i + 1

Close #ch1
End If
Next
End Sub

初めまして。
色々インターネット等で検索して作成してみたのですが、
ここから先のプログラムが組めないので、
やり方を教えて頂けますと幸いです。

おそらくIf Elseで場合訳すると思うのですが、
上手くできてません。

下記、プログラムの概要です。
(1)フォルダを指定し、そのフォルダにある全てのCSVファイルを読み込む。
(2)CSVファイルを読み込む際には、「*.csv」の「*」部分をワークシート名とし、CSVファイルの内容をワークシートに書き込む。
例)「test.csv」の場合、ワークシート名は「t...続きを読む

Aベストアンサー

カンマ区切りのデータ状態によっては[外部データの取り込み]を使うとラクな場合があります。
参考程度ですが。
Sub try()
  Dim folderSelect As Object
  Dim ws      As Worksheet
  Dim foldPath   As String
  Dim f      As String
  Dim chk     As String
  Dim i      As Long

  Set folderSelect = CreateObject("Shell.Application"). _
            BrowseForFolder(0, "フォルダを選択してください", 0)
  If folderSelect Is Nothing Then Exit Sub
  Application.ScreenUpdating = False
  foldPath = folderSelect.Self.Path & "\"
  i = Worksheets.Count
  f = Dir(foldPath & "*.csv")

  Do Until Len(f) = 0&
    chk = Left$(f, Len(f) - 4)
    Set ws = Nothing
    On Error Resume Next
    Set ws = Sheets(chk)
    On Error GoTo 0
    If ws Is Nothing Then
      Set ws = Worksheets.Add(after:=Worksheets(i))
      ws.Name = chk
      i = i + 1
    Else
      ws.UsedRange.ClearContents
    End If
    With ws.QueryTables.Add(Connection:="TEXT;" & foldPath & f, _
                Destination:=ws.Cells(1))
      .AdjustColumnWidth = False
      .TextFilePlatform = xlWindows
      .TextFileStartRow = 1
      .TextFileCommaDelimiter = True
      .Refresh False
      .Parent.Names(.Name).Delete
      .Delete
    End With
    f = Dir()
  Loop
  
  Application.ScreenUpdating = True
  Set ws = Nothing
  Set folderSelect = Nothing
End Sub

カンマ区切りのデータ状態によっては[外部データの取り込み]を使うとラクな場合があります。
参考程度ですが。
Sub try()
  Dim folderSelect As Object
  Dim ws      As Worksheet
  Dim foldPath   As String
  Dim f      As String
  Dim chk     As String
  Dim i      As Long

  Set folderSelect = CreateObject("Shell.Application"). _
            BrowseForFolder(0, "フォルダを選択してください", 0)
  If folderSelect Is Nothi...続きを読む

Q英語に訳して下さいm(._.)m 今、LINEスタンプを作っていて、申請を出すのに英語で説明する項目

英語に訳して下さいm(._.)m
今、LINEスタンプを作っていて、申請を出すのに英語で説明する項目があります。
英語の詳しい方、どうかお願いします‼︎

「コケピヨスタンプ第2弾!友達やカップル、家族など使いやすいスタンプです。」

Aベストアンサー

>申請を出すのに

ということですので、口語調を改め、少し硬めに、

I made KOKEPIYO stamp Ver.2!

It is easy to use for friends , couples , family and the like.

QEXCEL VBAでのCSVファイル読み込み、出力で困っています。

EXCEL VBAでのCSVファイル読み込み、出力で困っています。


データ3件のファイルから3件抽出すると正常にイミディエイトウィンドウへ表示されるのですが
データ約38,000件のファイルから3件抽出すると文字化けする項目があるのです。
文字化けする項目の共通点は256文字以降が、どうやら化けているようです。(長文1、長文2の項目)
教えて!goo でいろいろ探してみましたが、これといった解決策が見つかりませんでした。

また、抽出データをCSVで出力しているのですが
始まりと終わりに " が出力されるので困っています。
" が出力されないようにできるのでしょうか?


当方、COBOLでのコーディング経験は実務で4年ほどありますが
VBAの知識は学校で少し学んだ程度の初心者です。

わかりやすく教えていただけないでしょうか?


sample1.csv データ3件
sample2.csv データ約38,000件(ここにsample1.csvと同じデータが含まれています)


Dim adoCON As New ADODB.Connection
Dim adoRS As New ADODB.Recordset
Dim rec As String


'ADOを使い読み込み専用モードでCSVファイルを扱う準備(オープン)をします
adoCON.Open "Driver={Microsoft Text Driver (*.txt; *.csv)}; " & _
"DBQ=c:\Documents and Settings\デスクトップ\test;" & _
"ReadOnly=1"
Open "C:\Documents and Settings\デスクトップ\test\test.csv" For Output As #1


'SQLを実行し、指定したIDのデータを抽出します
'ID,名前,,,,,,,,,,,長文1,長文2,,,,,,更新日時 ←こんな感じで20項目
Set adoRS = adoCON.Execute("select * from sample1.csv where (ID = 213428) or (ID = 212717) or (ID = 212917)")

'SQLの実行結果をデータが無くなるまでrecへ格納します
Do Until adoRS.EOF = True

rec = rec & adoRS("ID") & "," & adoRS("名前") & "," & adoRS("長文1") & "," & adoRS("長文2") & Chr(10)

'カーソルを次の行へ
adoRS.MoveNext

Loop

'recの内容をイミディエイトウィンドウへ表示
Debug.Print rec

'recの内容を出力
Write #1, rec

'CSVファイルをクローズします
Close #1

'レコードセットをクローズします
adoRS.Close

'データベースのクローズ
adoCON.Close

EXCEL VBAでのCSVファイル読み込み、出力で困っています。


データ3件のファイルから3件抽出すると正常にイミディエイトウィンドウへ表示されるのですが
データ約38,000件のファイルから3件抽出すると文字化けする項目があるのです。
文字化けする項目の共通点は256文字以降が、どうやら化けているようです。(長文1、長文2の項目)
教えて!goo でいろいろ探してみましたが、これといった解決策が見つかりませんでした。

また、抽出データをCSVで出力しているのですが
始まりと終わりに " が出力さ...続きを読む

Aベストアンサー

フィールドの型が自動判定されるため、
テキスト型で256文字以上が切り捨てられているのでしょう。
http://oshiete.goo.ne.jp/qa/5996792.html
>..schema.iniファイルを作成して対処したほうが良いかと思います。
>256文字以上の文字列を含む列をMemo型で指定します。

>始まりと終わりに " が出力されるので困っています。
[Write#ステートメント]を使ってるからでしょう。
ヘルプで確認してみてください。
>..文字列は、ダブル クォーテーション ("") で囲んで出力します。
提示内容であれば、[Print#ステートメント]で良さそうですが。


人気Q&Aランキング