エクセルの住所ファイル(複数行)を編集して、CSVファイル形式で1件単位に出力したいのですが、よいアイデアはありませんか?
エクセルシートが下記の形式であります。CSV形式で単純出力すると行単位で改行されて出力されますが、複数行をまとめて1件のCSVファイルに出力し、アクセスに取り込みたいのですが、よいアイデア、サンプルPGMはありませんか?エクセルシートには特に関数、制御文字等は指定しておりませんが、1件データの終了行(6行目、11行名…)に制御項目を事前セットすること必要であれば、マクロ等でセットします。
1行目 ××住所録,
2行目 yyyy/mm/DD,(作成日) (※1行目と2行目は取り込まない)
3行目 氏名,田中,社員番号,1234567,所属コード,1000,所属名,営業部
4行目 郵便番号,123-4567,住所,東京都千代田区内神田1-1-1
5行目 電話番号,03-1234-5678,FAX番号,03-1234-5678
6行目 任意コメント欄,重要キーマン,
8行目 氏名,山田,社員番号,1234568,所属コード,2000,所属名,法務部
9行目 郵便番号, 以降約50件のデータが続く(※1行飛ばして、1件4行で編集されているシート)
出力方法
各行のデータ項目(田中,1234567,1000,営業部,123-4567,(住所),…)を出力
VB若葉マークであり、「FileSystemObject」を活用したらとの助言は頂きましたが、検索しましたが類似機能にヒットしませんでした。よろしくお願いします。
No.2ベストアンサー
- 回答日時:
こんなんじゃだめですか?
(すっごい適当に書いてます。)
Open "aaa.txt" For Output As #fileNum
i = 3
Do Until cells(i, 1) = ""
str = cells(i, 1).value & "," & cells(i, 2).value & _
"," & cells(i, 3).value & "," & cells(i, 4).value & _
"," & cells(i, 5).value & "," & cells(i, 6).value & _
"," & cells(i, 7).value & "," & cells(i, 8).value & ","
i = i + 1
str = str & cells(i, 1).value & "," & cells(i, 2).value & _
"," & cells(i, 3).value & "," & cells(i, 4).value & ","
i = i + 1
str = str & cells(i, 1).value & "," & cells(i, 2).value & _
"," & cells(i, 3).value & "," & cells(i, 4).value & ","
i = i + 1
str = str & cells(i, 1).value & "," & cells(i, 2).value
Print fileNum, str
i = i + 2
Loop
Close #fileNum
No.5
- 回答日時:
表の組み換えは簡単なVBAコードで出きる
Sheet1->Sheet2に組み替え
例データ
Sheet1
A列
aa1
bb1
cc1
dd1
eee1
aa2
bb2
cc2
dd2
eee2
aa3
bb3
cc3
dd3
eee3
aa4
bb4
cc4
dd4
eee4
ーー
Sheet2 結果A-E列
aa1bb1cc1dd1eee1
aa2bb2cc2dd2eee2
aa3bb3cc3dd3eee3
aa4bb4cc4dd4eee4
コード
Sub test01()
Dim sh1, sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
k = 1
For i = 1 To 20 Step 5
For j = 1 To 5
sh2.Cells(k, j) = sh1.Cells(i + j - 1, "A")
Next j
k = k + 1
Next i
End Sub
列数は5としている。
For i = 1 To 20 Step の20は最下行を捉えるコードにしてください
(意識的手抜き)
No.4
- 回答日時:
#3です。
表現を改めます。
「エクセルワークシートで切取移動する」
→4行目~6行目をそれぞれ切取って3行目に移動していき、データを1行にする
をループ処理する。
No.3
- 回答日時:
3行目から7行目(空白行)までのパターンの繰り返しでその構造は一定ですか?
そうなら「エクセルワークシートで切取移動する」か、「全ての項目を配列にして扱う」ってのはいかがですか?
No.1
- 回答日時:
別に「FileSystemObject」を使わなくてもできます。
「vba ファイル書き出し」をキーワードに検索すれば、例がたくさんみつかるはずです。
基本は、OPEN命令で書き出すファイルを開き、PRINT命令で書き出すだけです。書き出す内容はセルのの値を逐次取り出すわけですから、自分で自在にハンドリングします。
この回答への補足
ご返答ありがとうございます。
vbaファイル書き出し等の検索ワードでは、単純に出力する方法は記載があり、OPEN命令、PRINT命令、及びエクセルの先頭・最終セルを判定してループする機能もあり、その範囲程度であれば理解しているつもりです。しかし、書き出しセル(項目)のコントロールする機能(複数行をまとめて出力、項目を選択して出力等)についてはなかなかヒットしません。なにかよいお知恵・サンプル等のリンクがあれば教えていただけないでか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 【Excel】住所に郵便番号を付記する方法 3 2022/05/07 17:15
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- その他(Microsoft Office) EXCELの1行を1枚の用紙にそれぞれ印刷したい。 3 2022/10/10 11:35
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Range("A1")⇔cells(1,1)の変換。
-
vba formulaの中での変数の扱い
-
AccessVBAから、Excelシート内...
-
マクロの「SaveAs」でエラーが...
-
VBAマクロ実行時エラーの修正に...
-
Worksheets メソッドは失敗しま...
-
エクセル マクロ オートフィ...
-
B列の最終行までA列をオート...
-
エクセルVBA 配列からセルに「...
-
【ExcelVBA】zip圧縮されたCSV...
-
VBA シートをコピーする際に Co...
-
結合されたセルをプルダウンの...
-
「段」と「行」の違いがよくわ...
-
エクセルで離れた列を選択して...
-
エクセルで複数のシートのクリ...
-
LEFT関数とIF関数の組み合わせ...
-
エクセルで特定の文字列が入っ...
-
vbaで指定したセルより下の行を...
-
VBA 指定した列にある日時デー...
-
vba 2つの条件が一致したら...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Range("A1")⇔cells(1,1)の変換。
-
VBA
-
vba formulaの中での変数の扱い
-
AccessVBAから、Excelシート内...
-
VBA SUM関数に変数を入れた計算...
-
VBA Range・Cellsプロパティに...
-
セルの値を足す
-
VBAマクロ実行時エラーの修正に...
-
エクセルで特定の文字列が入っ...
-
マクロの「SaveAs」でエラーが...
-
VBA シートをコピーする際に Co...
-
エクセル マクロ オートフィ...
-
Worksheets メソッドは失敗しま...
-
【Excel関数】UNIQUE関数で"0"...
-
Excelで空白セル直前のセルデー...
-
Cellsのかっこの中はどっちが行...
-
エクセルで離れた列を選択して...
-
VLOOKUPの列番号の最大は?
-
Excel VBAでのWorksheet_Change...
-
VBAのコードを教えてください
おすすめ情報