恐らく基本的な操作なのかもしれないのですが、初心者ゆえ苦戦しております。
マクロの加工操作はそこそこ作れるようになって来たのですが、データの抽出や、吐き出し方がよくわかりません。どうぞお助けくださいませ。
●決められた加工作業を行うにあたり、不特定のエクセルから情報を引用し、マクロ加工を行い、
それをCSVファイルとしてアウトプットするということを行いたいのです。
やりたい事①(ボタン1)
Book1のExcel上に[参照]ボタンをつくり、参照したいExcelを選択すると、
そのExcelの情報がBook1のsheet1に左上から引用されるというもの。
やりたい事②(ボタン2)
参照したデータをマクロで加工。(ここは作れました!)
やりたい事③(ボタン3)
加工されたデータをCSVファイルとしてoutputする。(できれば名称も自由に変えれるようにしたい)
保存される場所はBook1を保存しているフォルダと同一。(同一フォルダ内にoutputフォルダがつくられそこへ保存でも可能)
よろしくお願い致します。
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
こんにちは。
#1の回答者です。
>①も困っている状態です。
そうだったのですね。
>「Book1のExcel上に[参照]ボタンをつくり、参照したいExcelを選択すると、
>そのExcelの情報がBook1のsheet1に左上から引用されるというもの。」
これを、どのレベルまで押し上げられるのか、または、逆に簡易的に済ませるのか、今の段階では、ちょっと、こちらからは手が出ませんね。#2さんの示されたものが、ヒントになるかもしれませんが、実際にVBAで作るとなれば大変です。具体的な内容があれば、アドバイスはできるかと思います。
No.2
- 回答日時:
例えば、あるフォルダに見積書.xlsのファイルは複数あり、それらのファイルを開いて、
A1の内容を台帳のA2へ、B2の内容を台帳のB2へ.....、最後に見積書の内容は一覧として纏められます。
これは見積書と台帳の「マッピング」が必要となります。
(見積書のどのセルの内容を台帳のどの列にコピーする定義)
定義されたマッピングに基づいて、VBAで纏められます。
下記に似ていると思います。ご参考ください。
No.1
- 回答日時:
こんばんは。
>恐らく基本的な操作なのかもしれないのですが、
最初に、VBAというか、マクロというか、すべて簡単なものというものはないと思っいたほうがよいかと思います。
>やりたい事③(ボタン3)
>加工されたデータをCSVファイルとしてoutputする。
ここだけでいいのですよね。output自体は、定番というものはあるものの、それぞれの味付けがされているものがありますから、私もそうしたように、人のテクニックを学ばれるとよいでしょう。
>(同一フォルダ内にoutputフォルダがつくられそこへ保存でも可能)
コードが長くなりますので、今回は、パスしましたが、
>保存される場所はBook1を保存している
一応、一回、保存したBookでないと、フォルダーは取れません。
なお、VBAでCSV ファイルを作る場合、いくつかの違ったものができます。
・Unix系の改行コードが、LF(Line Feed)のもの
・文字列がUNICODEになっているもの
・文字列には、" " で囲まれているもの。数値には付かない。
これらは、以下のコードでは作れないはずです。
'//
Sub CSVOutput()
Dim myPath As String
Dim myFname As Variant
Dim rng As Range
Dim Fno As Integer
Dim buf As String
Dim i As Long
Dim j As Long
myPath = ThisWorkbook.Path & "\"
'A1から
Set rng = Range("A1").CurrentRegion
''Set rng = ActiveSheet.UsedRange 'A1から始まっていない場合
If rng.Cells.Count < 2 Then MsgBox "データが少なすぎます", vbExclamation: Exit Sub
ChDir myPath 'あまり意味はありませんが、なんとなくです。
myFname = Application.GetSaveAsFilename("", "テキスト ファイル (*.csv), *.csv")
If myFname = False Then
Exit Sub
ElseIf Dir(myFname) <> "" Then
If MsgBox("同じ名前のファイルがあります。上書きしますか?", vbQuestion) = vbCancel Then
Exit Sub
End If
End If
Fno = FreeFile()
Open myFname For Output As #Fno
With rng
For i = 1 To .Rows.Count
For j = 1 To .Columns.Count
If Not IsEmpty(.Cells(i, 1).Value) Then
buf = buf & "," & .Cells(i, j).Value
End If
Next j
Print #Fno, Mid(buf, 2)
buf = ""
Next i
End With
Close #Fno
End Sub
ありがとうございます!③は頂いたコードで無事解決しました!
しかし残念ながら個人でできたのは②のみで、①も困っている状態です。
他の方の回答を見ながらもう少し勉強してみます。
お尻の部分ができて嬉しいです。本当にありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) Excel VBA 同じ名前のフォルダがあれば作成したブックを格納するマクロをつくりたい 2 2023/01/16 16:19
- Visual Basic(VBA) Excelのマクロについて教えてください。 作業フォルダ内に2つのファイルがあります。 このファイル 2 2023/07/09 13:40
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Excel(エクセル) マクロVBAのフォルダ階層別で検索の方法 4 2022/04/03 23:23
- その他(プログラミング・Web制作) DOSコマンドに詳しい方、お知恵をお貸しください 5 2022/11/04 20:55
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つのファイルの同...
-
Excelで「変更を保存しますか」...
-
大量のフォルダからひとつのフ...
-
stable diffusionのインストー...
-
コマンドプロンプトのエラーに...
-
コマンドプロンプトの「%1」と...
-
ホームページのリンクからプロ...
-
テキストファイルのタブをカン...
-
画像・動画データを日付毎のフ...
-
テキストファイルのファイル名...
-
exeファイルをデータ転送サービ...
-
拡張子を元に戻す
-
CSSを1ページに1枚作るのって変...
-
バッチファイルの内容を表示さ...
-
エクセル フォルダの画像を画...
-
pcゲームの優先度の設定につい...
-
Windows10にデュアルブートでXP...
-
バッチファイルからVBAに引数を...
-
テキストファイルを直接置換す...
-
ある文字列を含む行の抽出
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つのファイルの同...
-
Excelで「変更を保存しますか」...
-
OpenOfficeでLotus123は開かない?
-
間違えて上書き保存した場合の...
-
slk拡張子のエクセルファイルを...
-
WinCDRで「***.iso」ファイルか...
-
MacのQuarkデータをWinのInDesi...
-
実行b可能な限界を超えています...
-
サポートの終了したExcel.xlsフ...
-
AccessでクエリしたデータをExc...
-
CSVデータの数値の表示
-
フォトショップで作成したpsdデ...
-
《エクセル》マクロとセルのリ...
-
2種類のエクセルファイルから...
-
jpgファイルをaiファイルに戻す
-
CSVファイルををリネームしてxl...
-
画像ファイルのjpegファイルをe...
-
上書き時間を短縮する方法はあ...
-
コマンドプロンプトの「%1」と...
-
バッチでテキストファイルから...
おすすめ情報