フォルダの中には日付(xxx6_19)がファイル名の複数のCSVファイルがあります。
エクセルでメニュー画面を作成しワンクリックで当フォルダ内の一番最近のファイルを開き、尚且つ1つの項目を並び替えて上位5位までを表示させる方法を教えて下さい!

A 回答 (6件)

>更新日時でソートし昨日・今日の日付分の行を薄く塗りつぶす!



cvsファイルを呼び出すために使っているブックの標準モジュールに貼り付けます。

少し不明点が・・・。ソートは逆順にしています。(昇順はxlAscendingにします)
昨日、今日をどうつかむか・・・。今はパソコンの機械日付<Now()>を今日にしています。
薄く塗りつぶす・・・。カラーインデックス15等を適当に使っています。
csvデータの最初は表題と考えています。(ソートに関係します)
うまくいけばいいですね。では。

Public Sub CSVdataSort()
Const ksYMD = "AM" '更新日時の列名
Dim w As Workbook 'ブック
Dim CsvShtName As String 'csvファイルを読み込んだブック
Dim CsvFileCot As Integer 'csvファイルの個数
For Each w In Application.Workbooks
If Right(w.Name, 3) = "csv" Then
CsvShtName = w.Name: CsvFileCot = CsvFileCot + 1
End If
Next
If Len(CsvShtName) = 0 Then 'ファイルなしの場合
MsgBox "CVSファイルがありません": Exit Sub
End If
If CsvFileCot > 1 Then
MsgBox "CVSファイルが複数あります。中断します": Exit Sub
End If
'元のシートから読み込んだCVSファイルを操作
Windows(CsvShtName).Activate 'アクティブにする
Cells.Select 'シートを選択
Cells.EntireColumn.AutoFit '列幅を自動調整する
ActiveSheet.UsedRange.Select 'データ部分を選択
'更新日時で降順にソート
Dim sKey As Range 'ソートキー
Set sKey = Range(ksYMD & "2")
Selection.Sort Key1:=sKey, Order1:=xlDescending, Header:=xlGuess
'今日、昨日の行に色を付ける
Dim rg As Range '更新日時データ範囲
Dim rgRow As Long '色を付ける行
Dim rowNum As Integer 'データ範囲の行数
Dim colNum As Integer 'データ範囲の列数
With ActiveSheet
rowNum = .UsedRange.Rows.Count
colNum = .UsedRange.Columns.Count
For Each rg In .Range(ksYMD & "2:" & ksYMD & rowNum)
rgRow = rg.Row
With Range(Cells(rgRow, 1), Cells(rgRow, colNum))
If rg = Int(Now()) Then '今日
.Interior.ColorIndex = 15 'カラーインデックス15
End If
If rg = Int(Now() - 1) Then '昨日
.Interior.ColorIndex = 34 'カラーインデックス34(36も薄い色?)
End If
End With
Next
Range("A1").Select
End With
End Sub
    • good
    • 0
この回答へのお礼

パソコン復旧作業の為、少し空いてしまいました。その間に回答ありがとうございます。アドバイス通り作業すると順調にいきました!そこでしめとしてB、C、D列を非表示にしたいのですが・・・「もっと早言えよ!」と言われそうですが・・・それと基本的な事ですが現在メニュー画面としてボタンを2つ用意し,1つ目は検索用として特定フォルダから最新ファイルを選択、もう1つはそれを更新日時でソートし尚且つ今日昨日の行に色を付けるように出来ました。本当にありがとうございます。作業上、便宜を図るために1つ目のボタンをクリックし、最新ファイルを検索後”その表示したシート上に2つ目のボタン作成し実行、若しくは最新ファイル選択後、一旦メニュー画面に戻り2つ目のボタンをクリック!”ってな具合にしたいのですが。どちらかと言えば後者の方を・・・
意味分かります!?ようは処理させたところにボタンがあり連続して作業が出来るようにしたいのですが。もちろんワンクリックすべての処理が出来ればそれに越したことはありません。何も分からずして毎回ずうずうしくてすみません・・・非表示の分とあわせてよろしくお願いします。
~~~現在パソコンが不安定な状態でいつフリーズするかヒヤヒヤしながら作業している毎日です。

お礼日時:2001/07/17 00:01

ANo#2に下記の4行を追加し実行結果のイミディエイトウインドウの内容を補足して下さい。

最初の2、3件と最後の2、3件を見たいので、途中はカットしてもらってかまいません。それに、ダイアログのメッセージは私の作ったダイアログの文言でしょうか。

myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり
myFileName = "*.csv" '月日は4桁

Debug.Print myDir & myFileName & ":初期値" '*** 追加 ***
Dummy = Dir(myDir & myFileName)
Debug.Print myDir & Dummy & ":検索1回目" '*** 追加 ***
While Len(Dummy) > 0
YMD8new = ymdHenkan(Dummy)
If YMD8old < YMD8new Then
mySchFileName = Dummy
YMD8old = YMD8new
End If

Dummy = Dir
Debug.Print myDir & Dummy & ":継続検索" '*** 追加 ***
Wend
Debug.Print myDir & mySchFileName & ":検索結果" '*** 追加 ***
If mySchFileName <> "" Then
    • good
    • 0
この回答へのお礼

アドバイス通りコード追加して実行したところ
イミディエイトウインドウに検索・検索結果が順に表示され・・
検索結果をよくみるとちゃんと指定したフォルダから
最新日時のファイルを検索していました。
なにかよくわからないまま解決したような感じで・・
本当にありがとうございます。
あつかましいですがその開いたファイルを次の処理として
更新日時でソートし昨日・今日の日付分の行を薄く塗りつぶす!
このようにしたいのですが、マクロをどこに書くのか分からず、
また書く場所によって違いますよね!?
ようは最新ファイルを開いたあとその処理をしたいのですが?

ファイルの内容は

A列 B列 C列・・・ AL列   AM列
名前 住所 TEL  登録日時  更新日時

といった具合に配列してあります。

お礼日時:2001/06/24 13:32

拡張子(.csv)があるようなのでANO.#2を使います。


確認ですが、ご自分のフォルダを指定してください。\あり」 の「ご自分のフォルダ」はcsvファイルがあるフォルダです。「\あり」は「C:\xxxxx\xxxxx\」のように登録して最後に「\」が必要ということです。

また、下記の様にしてみて下さい。実行した後、イミディエイトウインドウ(もしくはデバッグウインドウ)を開いて、開こうとしたファイル名を確かめてください。ドライブ名+フォルダ名+ファイル名になっていて、各々は\でつながっているでしょうか。何も表示されなかったら、拡張子が.csvではないか、指定したフォルダに.csvファイルがないような気がします。
最後のメセージを修正したのは、マクロからのメッセージかどうか確かめたいからです。確認をお願いします。また、マクロの先頭に「Option Explicit」が無ければ入力してください。スペルミスがあるかもしれません。マクロはコピーして貼り付けられました?
それと、Excelのバージョンは?

途中から・・・
myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり
myFileName = "*.csv" '月日は4桁
   :
   :
If mySchFileName <> "" Then
Debug.Print myDir & mySchFileName  '*** 追加します ***
Workbooks.Open Filename:=myDir & mySchFileName
Else
MsgBox "ファイルがありません(マクロのメセージ)" '*** 修正します ***
End If
End Sub
    • good
    • 0
この回答へのお礼

本当に事細かくアドバイスありがとうございます。
しかし、結論からいいますとダメでした。
アドバイス通り試みイミデイエイトウインドウで確認したところ、
なにも表示されていませんでした。
拡張子も表示していますし、ファイルのあるフォルダ名も入力ミスはないと思います。(ファイルのプロパティから{場所}をコピーしてあてはめています)
バージョンはExcel2000です。
尚、マクロはコピーできています。
コード等全くわからない為、応用が利かないのが現実です。
もう一度ファイル名を確認します「101010-keymans-2001-6-21.csv」
といった具合です。
度重なる内容不十分で大変申し訳ありません。

お礼日時:2001/06/23 13:08

修正する箇所は1箇所です。

フォルダをセットし、最後に\があればいいです。

多分、そうされてのことだと思い、なぜ動かないか考えてみました。
私は、csvファイルということで、ファイルの拡張子がcsvだと決めて作っています。#1の「お礼」にあるファイル名から推測すると拡張子が無いような気がします・・・下記に拡張子が無いcsvファイルを読めるようにしてみました。拡張子が無ければこちらを試してください。

Sub CommandButton1_Click()
Dim myDir As String 'ファイルガあるドライブとフォルダ
Dim myFileName As String '探すファイル名(ワイルドカード)
Dim Dummy As String '作業用ファイル名と見つかったファイル名
Dim mySchFileName As String '作業用ファイル名と見つかったファイル名
Dim YMD8old, YMD8new As Long 'ファイルがもつ月日

myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり
myFileName = "*.*"

Dummy = Dir(myDir & myFileName)
While Len(Dummy) > 0
If InStr(Dummy, ".") = 0 Then
YMD8new = ymdHenkan(Dummy)
If YMD8old < YMD8new Then
mySchFileName = Dummy
YMD8old = YMD8new
End If
End If

Dummy = Dir
Wend
If mySchFileName <> "" Then
Workbooks.OpenText Filename:=myDir & mySchFileName, DataType:=xlDelimited
Else
MsgBox "ファイルがありません"
End If
End Sub

'ファイル名の年月日を8桁にする
Function ymdHenkan(myFileName As String)
Dim wkFLname As String 'ワーク
Dim L As Integer 'カウンタ
Dim yy, mm, dd As String '年、月、日
Dim pot(4) As Integer '「-」の位置
Dim potIdx As Integer '「-」の位置の順

wkFLname = myFileName & "-"
For L = Len(wkFLname) To 1 Step -1
If Mid(wkFLname, L, 1) = "-" Then
potIdx = potIdx + 1
pot(potIdx) = L
End If
If potIdx = 4 Then Exit For
Next
yy = Mid(wkFLname, pot(4) + 1, pot(3) - 1 - pot(4))
mm = Right("0" & Mid(wkFLname, pot(3) + 1, pot(2) - 1 - pot(3)), 2)
dd = Right("0" & Mid(wkFLname, pot(2) + 1, pot(1) - 1 - pot(2)), 2)
Debug.Print ymdHenkan
ymdHenkan = Val(yy & mm & dd)
End Function
    • good
    • 0
この回答へのお礼

事細かく回答頂き本当にありがとうございます。
しかし解決されませんでした・・・前回と同じように「ファイルが見つかりません」と表示されます。おっしゃるように拡張子は表示していませんでした。で表示させて試みてもダメでした・

お礼日時:2001/06/23 00:13

VBEのシート(Sheet1等)のコードウインドウに貼り付けてマクロを実行してください。


年4桁、月・日(1桁か2桁)の一番最近のファイルを開きます。 「myDir」はご自分のドライブ+フォルダに変更してください。
Excel2000だとSplit、InStrRev関数等を使って書けますが、Excel95、97でも動くようにしてあります。

Sub CommandButton1_Click()
Dim myDir As String 'ファイルガあるドライブとフォルダ
Dim myFileName As String '探すファイル名(ワイルドカード)
Dim Dummy As String '作業用ファイル名と見つかったファイル名
Dim mySchFileName As String '作業用ファイル名と見つかったファイル名
Dim YMD8old, YMD8new As Long 'ファイルがもつ年月日(比較用)

myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり
myFileName = "*.csv" '月日は4桁

Dummy = Dir(myDir & myFileName)
While Len(Dummy) > 0
YMD8new = ymdHenkan(Dummy)
If YMD8old < YMD8new Then
mySchFileName = Dummy
YMD8old = YMD8new
End If

Dummy = Dir
Wend
If mySchFileName <> "" Then
Workbooks.Open Filename:=myDir & mySchFileName
Else
MsgBox "ファイルがありません"
End If
End Sub

'ファイル名の年月日を8桁にする
Function ymdHenkan(myFileName As String)
Dim wkFLname As String 'ワーク
Dim L As Integer 'カウンタ
Dim yy, mm, dd As String '年、月、日
Dim pot(4) As Integer '「-」の位置
Dim potIdx As Integer '「-」の位置の順

wkFLname = myFileName & "-"
For L = Len(wkFLname) To 1 Step -1
If Mid(wkFLname, L, 1) = "-" Then
potIdx = potIdx + 1
pot(potIdx) = L
End If
If potIdx = 4 Then Exit For
Next
yy = Mid(wkFLname, pot(4) + 1, pot(3) - 1 - pot(4))
mm = Right("0" & Mid(wkFLname, pot(3) + 1, pot(2) - 1 - pot(3)), 2)
dd = Right("0" & Mid(wkFLname, pot(2) + 1, pot(1) - 5 - pot(2)), 2)
ymdHenkan = Val(yy & mm & dd)
End Function
    • good
    • 0
この回答へのお礼

回答ありがとうございます。早速試みたところ”ファイルが見つかりません!”とダイアログ表示されてしまいました。初歩的な質問で大変申し訳ありませんが、 >myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり’この1行だけ入れ替えればいいんですよね!?

お礼日時:2001/06/22 20:50

少々条件が・・・


ファイル名の日付(xxx6_19)の意味があいまい(xxxは?)なので月日5桁で考えています。(6月1日は06_01、12月1日は12_01)9月までが月1桁だと判定に苦しみそうです。ファイル名には年月日以外の数値がないとか別の条件があれば簡単ですが。
また、年をどうされているか分かりませんが、Left(Right(Dummy, 9), 5)を少し変形すれば対応できるでしょう。(今はファイル名から月日を切り取っています)

下記は、月日5桁で一番大きいファイル名を探し、開いています。別シートになります。
この後、
 1.データ→並べ替えで上位5番目までを見る、または
 2.データ→フィルタ→オートフィルタでトップテンを選んで上位または下位5を選択
1または2も自動にする?のはキー記録でできそうですが・・・

コントロールツールボックスのボタンのマクロ。「myDir」を合うように変更してください。

Private Sub CommandButton1_Click()
Dim myDir As String 'ファイルガあるドライブとフォルダ
Dim myFileName As String '探すファイル名(ワイルドカード)
Dim Dummy, mySchFileName As String '作業用ファイル名と見つかったファイル名
Dim chkMD As String 'ファイルがもつ月日

myDir = "C:\My Documents\" 'ご自分のフォルダを指定してください。\あり
myFileName = "*.csv"        '月日は4桁

Dummy = Dir(myDir & myFileName)
While Len(Dummy) > 0
If chkMD < Left(Right(Dummy, 9), 5) Then
chkMD = Left(Right(Dummy, 9), 5)
mySchFileName = Dummy
End If

Dummy = Dir
Wend
If mySchFileName <> "" Then
Workbooks.Open Filename:=myDir & mySchFileName
Else
MsgBox "ファイルがありません"
End If
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。内容不十分ですみません。日々更新されるファイル名は「000001-sdfghfj-2001-6-21」といった具合です。データ並び替えは上手くいったんですがフォルダ内より最新ファイル取り出し(検索)が上手くいかず・・

お礼日時:2001/06/21 23:37

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

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

QEXCELのマクロをバッチファイルから起動させ、あるフォルダ内のCSVファイルをTXTファイルに変換。

あるフォルダにdata.csvというファイルがあります。

一つ目の質問は、EXCELのマクロで「あるフォルダ内にある***.csvを開く」という動作はどのように記述されますか?

2つ目の質問はバッチファイルあるいはスクリプトファイルでEXCELのこのマクロを実行させることは可能ですか。どのように記述したらよいのでしょうか。

3つ目はセルA1~A10の値をx B1~B10の値をyとしてグラフを描かせるコマンドはありますか。

Aベストアンサー

3つ目は、#1にご回答にあるようにマクロの記録を取れば良い。骨子は
Sub Macro1()
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets("Sheet3").Range("A1:B10"), PlotBy:= _
xlColumns
End Sub
でChartType = xlXYScatterと
PlotBy:=xlColumnsがキーです。

Qタブで区切られたXXX.csvファイルをエクセルで開くには

中身はタブで区切られた「XXX.csv」というファイルをエクセルでうまく開くにはどのようにすれば可能でしょうか?
Excell2000を使用しています。
XXX.csvファイルをクリックすると、エクセルで開きますが、タブ区切りされておらず、セルAにすべて入ってしまいます。(行への展開は正しい)
そのため、はじめにエクセルを開いておいて、ファイル名を指定しますが、これもうまくいきません。
どのようにすれば、タブ区切りという指定が出来て、Excellへ展開することが出来るのでしょうか?

Aベストアンサー

Excelで開いた後で、CNTL+Aですべてを選択して、メニューのデータから区切り位置を選択、ウイザードで、区切り文字をタブに指定して完了

QVBAで、以下を行いたいです。 あるドライブのフォルダに、csvファイルが複数あります。全てのcsv

VBAで、以下を行いたいです。

あるドライブのフォルダに、csvファイルが複数あります。全てのcsvのファイル名は、以下の形式です。

日本語5文字+数字5桁+日本語5文字+数字5桁
例として、あいうえお12345かきくけこ67890、のような感じです。

例で挙げた名前のファイルであれば、Excelファイルの最終行のA列に12345、B列に67890、C列にcsvファイルのB3セルの左から5文字めまでを、D列以降には、csvファイルのC1〜C20までをコピーします。

これをフォルダにあるcsvファイルの数だけ、行います。

教えて頂けます様に、よろしくお願いします。

Aベストアンサー

こんばんは。

最終行のA列に12345| B列に67890 |C列にcsvファイル
「B3セルの左から5文字めまで」
「D列以降には、csvファイルのC1〜C20まで」
をコピーします。

となっていますが、csvファイルのC1~C20 を、右横方向に埋めていくことだと推理してみました。

それと、文章的に不足している部分は、こちらの想像で補完しますが、試しにつくってみました。CSVをExcelで開けずに取り出すことを考えて作りました。

このような内容の前提で作りました。

file名:あいうえお12345かきくけこ67890.csv

A列    B列
12345 67890、

C列
B3セルの左から5文字めまで, 例:abcdefg
abcde

D列
C1〜C20 を、D列からW列までコピー

なお、一部、正規表現でファイル名を取得する所*は、多少、失敗を誘発する可能性があるところです。 必ず、その条件に当てはまらないと、データは取得できません。


'// 標準モジュールのみ対象。
Sub GetDataFromCSV()
 '*******ユーザー設定 *******
 Const mPATH As String = "C:\Users\Test1\" '末尾は必ず、¥を入れてく多剤。
 If Right(mPATH, 1) <> "\" Then MsgBox "パス名に'\' がありません。", vbCritical: Exit Sub
 
 Dim RegEx As Object
 Dim FName As String
 Dim Ary As Variant, a As String, b As String
 Dim buf As Variant, buf2 As Variant
 Dim Lr As Long, i As Long, j As Long, k As Long, m As Long
 ReDim Ary(0)
 Ary(0) = ""
 FName = Dir(mPATH & "*.csv", vbNormal)
 Do While FName <> ""
  If FName <> "." And FName <> ".." Then
   ReDim Preserve Ary(i) '動的変数にする
   Ary(i) = mPATH & FName
   i = i + 1
  End If
  FName = Dir
 Loop
 
 If UBound(Ary) < 1 Then MsgBox "ファイル名を取得出来ませんでした。", vbExclamation: Exit Sub
 
 Lr = Cells(Rows.Count, 1).End(xlUp).Row '最後の行を探す
 If Lr = 1 And Cells(1, 1).Value = "" Then Lr = 0
 
 Dim objFS As Object
 Set objFS = CreateObject("Scripting.FilesystemObject")
 
 Dim Ms
 Set RegEx = CreateObject("VBScript.RegExp")
 With RegEx
  .Global = True: .IgnoreCase = False: .MultiLine = True
 End With
 RegEx.Pattern = "([0-9]{5})"
 Dim objText As Object
 For j = 1 To UBound(Ary)
  FName = Dir(Ary(j))
  Set Ms = RegEx.Execute(FName)
  If Ms.Count = 0 Then MsgBox "ファイル名取得に失敗しました。", vbExclamation: Exit Sub
  a = Ms(0).SubMatches(0) '*
  b = Ms(1).SubMatches(0) '*
  Cells(j + Lr, 1).Value = a: Cells(j + Lr, 2).Value = b
  Set objText = objFS.OpenTextFile(Ary(j), 1, 0)
  Do While objText.AtEndOfLine <> True
   buf = objText.Readline
   buf2 = Split(buf, ",")
   m = m + 1
   If m = 3 Then Cells(j + Lr, 3).Value = Left$(buf2(1), 5)
   Cells(j + Lr, m + 3).Value = buf2(2) 'C列
   If m > 19 Then Exit Do '20過ぎたら離脱
  Loop
  objText.Close
  m = 0
 Next j
 Set RegEx = Nothing
 Set objFS = Nothing
End Sub

こんばんは。

最終行のA列に12345| B列に67890 |C列にcsvファイル
「B3セルの左から5文字めまで」
「D列以降には、csvファイルのC1〜C20まで」
をコピーします。

となっていますが、csvファイルのC1~C20 を、右横方向に埋めていくことだと推理してみました。

それと、文章的に不足している部分は、こちらの想像で補完しますが、試しにつくってみました。CSVをExcelで開けずに取り出すことを考えて作りました。

このような内容の前提で作りました。

file名:あいうえお12345かきくけこ67890.csv

A列    B...続きを読む

Qエクセルで縦に並んだデータをある項目毎に横に並び替えたい

エクセルで以下のような「店の名前、果物名、個数、金額」が書かれた表のデータがあります。
| A | B | C | D
1|A店|りんご| 2 |400
2|A店|みかん| 3 |300
3|A店|バナナ| 4 |200
4|B店|りんご| 3 |600
5|B店|バナナ| 2 |100

これを別シートに次のようなかたちにしたいのですが、一つずつ移動する以外に方法はありますか?

| A | B | C | D | E | F | G | H | I | J
1|A店|りんご| 2 |400 |みかん| 3 | 300 | バナナ| 4 |200
2|B店|りんご| 3 |600 ||バナナ| 2 |100

エクセルの関数で処理し、できれば別シートにたいのですが、
良い方法を教えていただければ、幸いです。
なにとぞ、宜しくお願いいたします。
(別の方の質問で、果物と個数までの処理する回答がありましたが、
金額まで入れた3要素を集計する場合の関数が分かりませんでした。)

エクセルで以下のような「店の名前、果物名、個数、金額」が書かれた表のデータがあります。
| A | B | C | D
1|A店|りんご| 2 |400
2|A店|みかん| 3 |300
3|A店|バナナ| 4 |200
4|B店|りんご| 3 |600
5|B店|バナナ| 2 |100

これを別シートに次のようなかたちにしたいのですが、一つずつ移動する以外に方法はありますか?

| A | B | C | D | E | F | G | H | I | J
1|A店|りんご| 2 |400 |みかん| 3 | 300 | バナナ| 4 |2...続きを読む

Aベストアンサー

こんばんは!

VBAでの一例です。
↓の画像のように元データはSheet1にあり、1行目は項目行になっているとします。
Sheet2に表示するようにしてみました。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long, c As Range, wS As Worksheet
Set wS = Worksheets("Sheet2")
wS.Cells.Clear
With Worksheets("Sheet1")
.Range("A:A").AdvancedFilter Action:=xlFilterCopy, copytorange:=wS.Range("A1"), unique:=True
For i = 2 To .Cells(Rows.Count, "A").End(xlUp).Row
Set c = wS.Range("A:A").Find(what:=.Cells(i, "A"), LookIn:=xlValues, lookat:=xlWhole)
wS.Cells(c.Row, Columns.Count).End(xlToLeft).Offset(, 1). _
Resize(, 3).Value = .Cells(i, "B").Resize(, 3).Value
Next i
End With
wS.Rows(1).Delete
wS.Range("A1").CurrentRegion.Borders.LineStyle = xlContinuous
wS.Columns.AutoFit
End Sub 'この行まで//

※ 関数でないのでデータ変更があるたびに
マクロを実行する必要があります。m(_ _)m

こんばんは!

VBAでの一例です。
↓の画像のように元データはSheet1にあり、1行目は項目行になっているとします。
Sheet2に表示するようにしてみました。

Alt+F11キー → メニュー → 挿入 → 標準モジュール → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り(VBE画面を閉じて)
マクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から//
Dim i As Long, c As Range, wS As Worksheet
Set wS =...続きを読む

QAccess又はExcelで256項目を超えるCSVファイルをインポートしたい

たとえば500項目(フィールド)あるCSVファイ
ルを取り込みたいのですが、AccessもExcelも
256項目までしかインポートできません。


500項目を200項目ごとに
 1回目   1~200項目まで
 2回目 201~400項目まで
 3回目 401~500項目まで
分けてでもいいのですが。


又直接でなくても
別途、エディッタを使うとかで加工後、Access
にインポートするでもOkなんです。

ただ、レコード件数が多いため1レコード毎に加工
するのは無理なんです。


何かよい方法はないでしょうか? 

Aベストアンサー

http://rd.vector.co.jp/soft/win95/business/se096074.html

http://www.koka-soft.com/okada/koka_software/chgfld.htm


これあたりで 事前に加工できそうですが・・・


人気Q&Aランキング

おすすめ情報